Restarted venv (Python 3.9.13)

In [ ]:
import numpy as np
import pandas as pd
from sklearn.metrics import mutual_info_score
from sklearn.feature_selection import mutual_info_regression
import dcor
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import accuracy_score
import copy
import datetime
import scipy.stats as stats
import matplotlib.pyplot as plt
import scipy.stats as stats
from scipy.stats import mannwhitneyu, ttest_ind
import warnings
import ast
# Suppress all DeprecationWarnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

# Function to generate the dataset with a fixed random seed
def generate_dataset(strength_of_noise, n_samples=10000, random_seed=None):
    # Fix the random seed if provided
    if random_seed is not None:
        np.random.seed(random_seed)
    
    # Generate 7 independent noise features from standard normal distribution
    independent_features = np.random.normal(0, 1, (n_samples, 7))
    
    # Generate the two independent dependent features: 'local trigger' and 'slope'
    local_trigger = np.random.normal(0, 1, n_samples)
    slope = np.random.normal(0, 1, n_samples)
    
    # Generate the third dependent feature based on 'local trigger' and 'slope'
    third_feature = np.where(local_trigger < 0, 
                             np.random.normal(0, 1, n_samples), 
                             slope + strength_of_noise * np.random.normal(0, 1, n_samples))
    
    # Normalize the third feature (subtract mean and divide by standard deviation)
    third_feature = (third_feature - np.mean(third_feature)) / np.std(third_feature)
    
    # Stack all features together (7 independent + 3 dependent)
    dependent_features = np.column_stack((local_trigger, slope, third_feature))
    dataset = np.column_stack((independent_features, dependent_features))
    
    return dataset

# Example of generating the dataset with a specific strength of noise and random seed
# dataset = generate_dataset(strength_of_noise=1.0, random_seed=42)
# print(dataset.shape)  # Output: (10000, 10)

# Function to calculate Pearson correlation
def pearson_correlation(dataset):
    corr_matrix = np.corrcoef(dataset, rowvar=False)
    return np.abs(corr_matrix)

# Function to calculate Mutual Information between pairs of features
def mutual_information(dataset):
    n_features = dataset.shape[1]
    mi_scores = np.zeros((n_features, n_features))
    
    # Calculate mutual information for each pair of features
    for i in range(n_features):
        for j in range(i+1, n_features):
            mi_scores[i, j] = mutual_info_regression(dataset[:, i].reshape(-1, 1), dataset[:, j])
            mi_scores[j, i] = mi_scores[i, j]  # Symmetry
    return mi_scores

# Function to calculate Correlation of Distances (using dcor) between pairs of features
def correlation_of_distances(dataset):
    n_features = dataset.shape[1]
    dcor_scores = np.zeros((n_features, n_features))
    
    # Calculate distance correlation for each pair of features
    for i in range(n_features):
        for j in range(i+1, n_features):
            dcor_scores[i, j] = dcor.distance_correlation(dataset[:, i], dataset[:, j])
            dcor_scores[j, i] = dcor_scores[i, j]  # Symmetry
    return dcor_scores

# Function to run competitor methods on the dataset
def competitor_methods(dataset):
    pearson_corr = pearson_correlation(dataset)
    mi_scores = mutual_information(dataset)
    dcor_scores = correlation_of_distances(dataset)
    
    return {
        "Pearson Correlation (abs)": pearson_corr,
        "Mutual Information": mi_scores,
        "Distance Correlation": dcor_scores
    }

# Function to implement the proposed method with empirical distribution-based synthetic data generation
def proposed_method(dataset, random_seed=None):
    # Fix the random seed if provided
    if random_seed is not None:
        np.random.seed(random_seed)

    # Generate synthetic dataset by sampling from the empirical distribution of each feature in the original dataset
    synthetic_dataset = np.zeros_like(dataset)
    for i in range(dataset.shape[1]):
        synthetic_dataset[:, i] = np.random.choice(dataset[:, i], size=dataset.shape[0], replace=True)
    
    # Create labels for original (1) and synthetic (0) data
    labels = np.concatenate([np.ones(dataset.shape[0]), np.zeros(synthetic_dataset.shape[0])])
    
    # Combine original and synthetic datasets
    combined_data = np.vstack([dataset, synthetic_dataset])
    
    # Define the Random Forest classifier and hyperparameter grid, including random seed for the classifier
    rf = RandomForestClassifier(random_state=random_seed)
    param_grid = {
        'n_estimators': [100],
        'max_depth': [None, 10, 20],
        'min_samples_split': [2, 5, 10]
    }
    
    # Perform grid search to find the best hyperparameters
    grid_search = GridSearchCV(rf, param_grid, cv=5, scoring='accuracy', n_jobs=-1)
    grid_search.fit(combined_data, labels)
    
    # Get the best model from the grid search
    best_rf = grid_search.best_estimator_
    
    # Predict on the training data
    predictions = best_rf.predict(combined_data)
    
    # Calculate accuracy
    accuracy = accuracy_score(labels, predictions)
    
    # Get feature importances
    feature_importances = best_rf.feature_importances_
    
    return accuracy, feature_importances, best_rf

# Helper function to flatten DataFrame
def _flatten_df(df_input):
    df = copy.deepcopy(df_input)
    data = df.values
    np.fill_diagonal(data, np.nan)
    df = pd.DataFrame(data)
    flattened_df = df.reset_index().melt(id_vars='index', var_name='Column', value_name='Value')
    flattened_df.rename(columns={'index': 'feature_1', 'Column': 'feature_2'}, inplace=True)
    flattened_df = flattened_df.dropna(axis=0)
    return flattened_df

# Helper function to get statistics of independent features
def _get_statistic_of_independent_features(df_input):
    df = copy.deepcopy(df_input)
    df = df[(df['feature_1'] < 7) | (df['feature_2'] < 7)]
    return df["Value"].mean(), df["Value"].min(), df["Value"].max()

# Helper function to get statistics of dependent features
def _get_statistic_of_dependent_features(df_input):
    df = copy.deepcopy(df_input)
    df = df[df['feature_1'] >= 7]
    df = df[df['feature_2'] >= 7]
    return df["Value"].mean(), df["Value"].min(), df["Value"].max()

# Helper function to get top 3 features from competitors
def _get_top3_features_competitors(df_input):
    df = copy.deepcopy(df_input)
    df = df.sort_values("Value", ascending=True)
    df = df.tail(6)
    result = df["feature_1"].values.tolist() + df["feature_2"].values.tolist()
    result = sorted(list(set(result)))
    return result

################################################################################
# Main code to generate statistics
################################################################################

statistics = []
n=100
for strength_of_noise in [0.01, 0.1, 1, 10]: 
    for iteration in range(n):
        start_time = datetime.datetime.now()
        dataset = generate_dataset(strength_of_noise=strength_of_noise, random_seed=42+iteration)
        competitor_results = competitor_methods(dataset)

        # Calculate statistics for each competitor method
        for alias in ["Pearson Correlation (abs)", "Mutual Information", "Distance Correlation"]:
            e = {"strength_of_noise": strength_of_noise}
            df = pd.DataFrame(competitor_results[alias])
            if alias == "Pearson Correlation (abs)":
                df = df.abs()
            df = _flatten_df(df)
            e["iteration"] = iteration
            e["Method"] = alias.replace(" ", "_")
            e["avg_independent_features_statistics"], e["min_independent_features_statistics"], e["max_independent_features_statistics"] = _get_statistic_of_independent_features(df)
            e["avg_dependent_features_statistics"], e["min_dependent_features_statistics"], e["max_dependent_features_statistics"] = _get_statistic_of_dependent_features(df)
            e["top3_selected_features"] = _get_top3_features_competitors(df)
            statistics.append(e)
        
        # Calculate statistics for the proposed method
        accuracy, feature_importances, best_rf = proposed_method(dataset, random_seed=42)
        df = pd.DataFrame(feature_importances, columns=["Value"])
        df = df.sort_values("Value", ascending=True)
        df = df.reset_index()
        proposed_method_independent_features_statistics_avg = df[df["index"] < 7]["Value"].mean()
        proposed_method_dependent_features_statistics_avg = df[df["index"] >= 7]["Value"].mean()
        proposed_method_independent_features_statistics_min = df[df["index"] < 7]["Value"].min()
        proposed_method_dependent_features_statistics_min = df[df["index"] >= 7]["Value"].min()
        proposed_method_independent_features_statistics_max = df[df["index"] < 7]["Value"].max()
        proposed_method_dependent_features_statistics_max = df[df["index"] >= 7]["Value"].max()
        proposed_method_top3_selected_features = str(sorted(df.tail(3)["index"].values.tolist()))
        e = {"strength_of_noise": strength_of_noise}
        e["iteration"] = iteration
        e["Method"] = "Proposed_Method"
        e["avg_independent_features_statistics"] = proposed_method_independent_features_statistics_avg
        e["avg_dependent_features_statistics"] = proposed_method_dependent_features_statistics_avg
        e["min_independent_features_statistics"] = proposed_method_independent_features_statistics_min
        e["min_dependent_features_statistics"] = proposed_method_dependent_features_statistics_min
        e["max_independent_features_statistics"] = proposed_method_independent_features_statistics_max
        e["max_dependent_features_statistics"] = proposed_method_dependent_features_statistics_max
        e["top3_selected_features"] = proposed_method_top3_selected_features
        statistics.append(e)

        finish_time = datetime.datetime.now()
        print(f"{strength_of_noise} - {iteration} - Time taken: {finish_time - start_time}")

# Convert statistics to DataFrame and calculate additional statistics
statistics_df = pd.DataFrame(statistics)
statistics_df["independent_vs_dependent_avg_statistics_diff_%"] = (statistics_df["avg_dependent_features_statistics"] - statistics_df["avg_independent_features_statistics"]) / statistics_df["avg_independent_features_statistics"] *100
statistics_df["independent_vs_dependent_avg_statistics_diff_%"] = statistics_df["independent_vs_dependent_avg_statistics_diff_%"].round(2)
# print()
# print("========================================")
# print(f"Statistics")
# print("========================================")
# print(statistics_df.to_string())
# print()

statistics_df.to_csv("statistics.csv", index=False)

################################################################################
# Calculate accuracy, sensitivity, precision, and recall for top3_selected_features
################################################################################
accuracy_results = []

for strength_of_noise in statistics_df["strength_of_noise"].unique():
    for method in statistics_df["Method"].unique():
        subset = statistics_df[(statistics_df["strength_of_noise"] == strength_of_noise) & (statistics_df["Method"] == method)]
        
        true_positive = 0
        false_positive = 0
        false_negative = 0
        true_negative = 0
        
        for index, row in subset.iterrows():            
            top3_features = row["top3_selected_features"]
            if isinstance(top3_features, str):
                top3_features = ast.literal_eval(top3_features)
            elif isinstance(top3_features, list):
                top3_features = top3_features
            else:
                raise ValueError("top3_selected_features is not a list or a string")
            
            
            true_positives = len([feature for feature in top3_features if feature in [7, 8, 9]])
            false_positives = len([feature for feature in top3_features if feature not in [7, 8, 9]])
            false_negatives = 3 - true_positives
            true_negatives = 0  # Since we are only considering top 3 features, true negatives are not applicable here
            
            true_positive += true_positives
            false_positive += false_positives
            false_negative += false_negatives
        
        accuracy = true_positive / (true_positive + false_positive + false_negative) if (true_positive + false_positive + false_negative) > 0 else 0
        recall = true_positive / (true_positive + false_negative) if (true_positive + false_negative) > 0 else 0
        precision = true_positive / (true_positive + false_positive) if (true_positive + false_positive) > 0 else 0
        
        accuracy_results.append({
            "strength_of_noise": strength_of_noise,
            "Method": method,
            "accuracy": accuracy,
            "precision": precision,
            "recall": recall
        })

accuracy_df = pd.DataFrame(accuracy_results)
accuracy_df = accuracy_df.sort_values(by=["Method", "strength_of_noise"])
print()
print("========================================")
print(f"Accuracy, Sensitivity, Precision, and Recall for top3_selected_features")
print("========================================")
print(accuracy_df.to_string())


################################################################################
# Perform statistical testing to compare independent and dependent feature statistics with t-test
################################################################################
comparison_results_ttest = []

for strength_of_noise in statistics_df["strength_of_noise"].unique():
    for method in statistics_df["Method"].unique():
        subset = statistics_df[(statistics_df["strength_of_noise"] == strength_of_noise) & (statistics_df["Method"] == method)]
        
        for ind_stat, dep_stat in [("min", "min"),
                                   ("min", "avg"),
                                   ("min", "max"),
                                   ("avg", "min"),
                                   ("avg", "avg"),
                                   ("avg", "max"),
                                   ("max", "min"),
                                   ("max", "avg"),
                                   ("max", "max")]:
            
            ind_values = subset[f"{ind_stat}_independent_features_statistics"].replace(0, np.nan).dropna()
            dep_values = subset[f"{dep_stat}_dependent_features_statistics"].replace(0, np.nan).dropna()
            
            if not ind_values.empty and not dep_values.empty:
                # Apply log transformation, adding a small constant to avoid log(0)
                log_ind_values = np.log(ind_values + 1e-9)
                log_dep_values = np.log(dep_values + 1e-9)
                
                t_stat, p_value = stats.ttest_ind(log_ind_values, log_dep_values, alternative='less')
                avg_ind_stat_value = ind_values.mean()
                avg_dep_stat_value = dep_values.mean()
                comparison_results_ttest.append({
                    "strength_of_noise": strength_of_noise,
                    "Method": method,
                    "ind_stat": ind_stat,
                    "dep_stat": dep_stat,
                    #"t_stat": t_stat,
                    "p_value": p_value,
                    #"avg_ind_stat_value": avg_ind_stat_value,
                    #"avg_dep_stat_value": avg_dep_stat_value,
                    "dep_stat_greater_than_ind_stat": avg_ind_stat_value < avg_dep_stat_value
                })

comparison_df_ttest = pd.DataFrame(comparison_results_ttest)
comparison_df_ttest = comparison_df_ttest.sort_values(by=["Method", "strength_of_noise", "ind_stat", "dep_stat"])
print()
print("========================================")
print(f"t-test; Comparison Results - Independent vs Dependent Feature Statistics")
print("========================================")
print(comparison_df_ttest.to_string())
print()
print("========================================")
print(f"t-test; Comparison Results - Independent vs Dependent Feature Statistics SHORT")
print("========================================")
print(comparison_df_ttest[(comparison_df_ttest["ind_stat"] == "max") & (comparison_df_ttest["dep_stat"] == "min")].to_string())
print()

################################################################################
# Perform statistical testing to compare independent and dependent feature statistics with Mann-Whitney U test
################################################################################
comparison_results_mannwhitneyu = []

for strength_of_noise in statistics_df["strength_of_noise"].unique():
    for method in statistics_df["Method"].unique():
        subset = statistics_df[(statistics_df["strength_of_noise"] == strength_of_noise) & (statistics_df["Method"] == method)]
        
        for ind_stat, dep_stat in [("min", "min"),
                                   ("min", "avg"),
                                   ("min", "max"),
                                   ("avg", "min"),
                                   ("avg", "avg"),
                                   ("avg", "max"),
                                   ("max", "min"),
                                   ("max", "avg"),
                                   ("max", "max")]:
            
            ind_values = subset[f"{ind_stat}_independent_features_statistics"].replace(0, np.nan).dropna()
            dep_values = subset[f"{dep_stat}_dependent_features_statistics"].replace(0, np.nan).dropna()
            
            if not ind_values.empty and not dep_values.empty:
                u_stat, p_value = stats.mannwhitneyu(ind_values, dep_values, alternative='less')
                avg_ind_stat_value = ind_values.mean()
                avg_dep_stat_value = dep_values.mean()
                comparison_results_mannwhitneyu.append({
                    "strength_of_noise": strength_of_noise,
                    "Method": method,
                    "ind_stat": ind_stat,
                    "dep_stat": dep_stat,
                    #"u_stat": u_stat,
                    "p_value": p_value,
                    #"avg_ind_stat_value": avg_ind_stat_value,
                    #"avg_dep_stat_value": avg_dep_stat_value,
                    "dep_stat_greater_than_ind_stat": avg_ind_stat_value < avg_dep_stat_value
                })

comparison_df_mannwhitneyu = pd.DataFrame(comparison_results_mannwhitneyu)
comparison_df_mannwhitneyu = comparison_df_mannwhitneyu.sort_values(by=["Method", "strength_of_noise", "ind_stat", "dep_stat"])
print()
print("========================================")
print(f"Mann-Whitney U test; Comparison Results - Independent vs Dependent Feature Statistics")
print("========================================")
print(comparison_df_mannwhitneyu.to_string())
print()
print("========================================")
print(f"Mann-Whitney U test; Comparison Results - Independent vs Dependent Feature Statistics SHORT")
print("========================================")
print(comparison_df_mannwhitneyu[(comparison_df_mannwhitneyu["ind_stat"] == "max") & (comparison_df_mannwhitneyu["dep_stat"] == "min")].to_string())
print()


################################################################################
# Lognormal test results of statistics distribution and confidence intervals calculation
################################################################################
lognormal_results = []

for strength_of_noise in statistics_df["strength_of_noise"].unique():
    for method in statistics_df["Method"].unique():
        subset = statistics_df[(statistics_df["strength_of_noise"] == strength_of_noise) & (statistics_df["Method"] == method)]
        
        # Check if the distribution of dependent statistics is lognormal
        dependent_stats_avg = subset["avg_dependent_features_statistics"].replace(0, np.nan).dropna()
        dependent_stats_min = subset["min_dependent_features_statistics"].replace(0, np.nan).dropna()
        dependent_stats_max = subset["max_dependent_features_statistics"].replace(0, np.nan).dropna()
        
        # Check if the distribution of independent statistics is lognormal
        independent_stats_avg = subset["avg_independent_features_statistics"].replace(0, np.nan).dropna()
        independent_stats_min = subset["min_independent_features_statistics"].replace(0, np.nan).dropna()
        independent_stats_max = subset["max_independent_features_statistics"].replace(0, np.nan).dropna()
        
        # Fit lognormal distribution and perform KS test for average statistics
        if not dependent_stats_avg.empty:
            shape_avg, loc_avg, scale_avg = stats.lognorm.fit(dependent_stats_avg, floc=0)
            kstest_result_avg = stats.kstest(dependent_stats_avg, 'lognorm', args=(shape_avg, loc_avg, scale_avg))
            ci_avg = stats.lognorm.interval(0.95, shape_avg, loc=loc_avg, scale=scale_avg)
        else:
            kstest_result_avg = stats.kstest([0], 'lognorm', args=(0, 0, 1))  # Default result for empty data
            ci_avg = (0, 0)
        
        if not independent_stats_avg.empty:
            shape_ind_avg, loc_ind_avg, scale_ind_avg = stats.lognorm.fit(independent_stats_avg, floc=0)
            kstest_result_ind_avg = stats.kstest(independent_stats_avg, 'lognorm', args=(shape_ind_avg, loc_ind_avg, scale_ind_avg))
            ci_ind_avg = stats.lognorm.interval(0.95, shape_ind_avg, loc=loc_ind_avg, scale=scale_ind_avg)
        else:
            kstest_result_ind_avg = stats.kstest([0], 'lognorm', args=(0, 0, 1))  # Default result for empty data
            ci_ind_avg = (0, 0)
        
        # Fit lognormal distribution and perform KS test for min statistics
        if not dependent_stats_min.empty:
            shape_min, loc_min, scale_min = stats.lognorm.fit(dependent_stats_min, floc=0)
            kstest_result_min = stats.kstest(dependent_stats_min, 'lognorm', args=(shape_min, loc_min, scale_min))
            ci_min = stats.lognorm.interval(0.95, shape_min, loc=loc_min, scale=scale_min)
        else:
            kstest_result_min = stats.kstest([0], 'lognorm', args=(0, 0, 1))  # Default result for empty data
            ci_min = (0, 0)
        
        if not independent_stats_min.empty:
            shape_ind_min, loc_ind_min, scale_ind_min = stats.lognorm.fit(independent_stats_min, floc=0)
            kstest_result_ind_min = stats.kstest(independent_stats_min, 'lognorm', args=(shape_ind_min, loc_ind_min, scale_ind_min))
            ci_ind_min = stats.lognorm.interval(0.95, shape_ind_min, loc=loc_ind_min, scale=scale_ind_min)
        else:
            kstest_result_ind_min = stats.kstest([0], 'lognorm', args=(0, 0, 1))  # Default result for empty data
            ci_ind_min = (0, 0)
        
        # Fit lognormal distribution and perform KS test for max statistics
        if not dependent_stats_max.empty:
            shape_max, loc_max, scale_max = stats.lognorm.fit(dependent_stats_max, floc=0)
            kstest_result_max = stats.kstest(dependent_stats_max, 'lognorm', args=(shape_max, loc_max, scale_max))
            ci_max = stats.lognorm.interval(0.95, shape_max, loc=loc_max, scale=scale_max)
        else:
            kstest_result_max = stats.kstest([0], 'lognorm', args=(0, 0, 1))  # Default result for empty data
            ci_max = (0, 0)
        
        if not independent_stats_max.empty:
            shape_ind_max, loc_ind_max, scale_ind_max = stats.lognorm.fit(independent_stats_max, floc=0)
            kstest_result_ind_max = stats.kstest(independent_stats_max, 'lognorm', args=(shape_ind_max, loc_ind_max, scale_ind_max))
            ci_ind_max = stats.lognorm.interval(0.95, shape_ind_max, loc=loc_ind_max, scale=scale_ind_max)
        else:
            kstest_result_ind_max = stats.kstest([0], 'lognorm', args=(0, 0, 1))  # Default result for empty data
            ci_ind_max = (0, 0)
        
        lognormal_results.append({
            "strength_of_noise": strength_of_noise,
            "Method": method,
            "dependent_avg_statistic": kstest_result_avg.statistic,
            "dependent_avg_pvalue": kstest_result_avg.pvalue,
            "dependent_avg_is_lognormal": kstest_result_avg.pvalue > 0.05,
            "dependent_avg_shape": shape_avg,
            "dependent_avg_loc": loc_avg,
            "dependent_avg_scale": scale_avg,
            "dependent_avg_ci_lower": ci_avg[0],
            "dependent_avg_ci_upper": ci_avg[1],
            "dependent_min_statistic": kstest_result_min.statistic,
            "dependent_min_pvalue": kstest_result_min.pvalue,
            "dependent_min_is_lognormal": kstest_result_min.pvalue > 0.05,
            "dependent_min_shape": shape_min,
            "dependent_min_loc": loc_min,
            "dependent_min_scale": scale_min,
            "dependent_min_ci_lower": ci_min[0],
            "dependent_min_ci_upper": ci_min[1],
            "dependent_max_statistic": kstest_result_max.statistic,
            "dependent_max_pvalue": kstest_result_max.pvalue,
            "dependent_max_is_lognormal": kstest_result_max.pvalue > 0.05,
            "dependent_max_shape": shape_max,
            "dependent_max_loc": loc_max,
            "dependent_max_scale": scale_max,
            "dependent_max_ci_lower": ci_max[0],
            "dependent_max_ci_upper": ci_max[1],
            "ind_avg_statistic": kstest_result_ind_avg.statistic,
            "ind_avg_pvalue": kstest_result_ind_avg.pvalue,
            "ind_avg_is_lognormal": kstest_result_ind_avg.pvalue > 0.05,
            "ind_avg_shape": shape_ind_avg,
            "ind_avg_loc": loc_ind_avg,
            "ind_avg_scale": scale_ind_avg,
            "ind_avg_ci_lower": ci_ind_avg[0],
            "ind_avg_ci_upper": ci_ind_avg[1],
            "ind_min_statistic": kstest_result_ind_min.statistic,
            "ind_min_pvalue": kstest_result_ind_min.pvalue,
            "ind_min_is_lognormal": kstest_result_ind_min.pvalue > 0.05,
            "ind_min_shape": shape_ind_min,
            "ind_min_loc": loc_ind_min,
            "ind_min_scale": scale_ind_min,
            "ind_min_ci_lower": ci_ind_min[0],
            "ind_min_ci_upper": ci_ind_min[1],
            "ind_max_statistic": kstest_result_ind_max.statistic,
            "ind_max_pvalue": kstest_result_ind_max.pvalue,
            "ind_max_is_lognormal": kstest_result_ind_max.pvalue > 0.05,
            "ind_max_shape": shape_ind_max,
            "ind_max_loc": loc_ind_max,
            "ind_max_scale": scale_ind_max,
            "ind_max_ci_lower": ci_ind_max[0],
            "ind_max_ci_upper": ci_ind_max[1]
        })
        
        # Plot QQ-plots and histograms for each statistic
        fig, axes = plt.subplots(4, 3, figsize=(15, 20))
        
        # QQ plots for dependent statistics
        stats.probplot(dependent_stats_avg, dist="lognorm", sparams=(shape_avg, loc_avg, scale_avg), plot=axes[0, 0])
        axes[0, 0].set_title(f'QQ Plot - Avg Dependent Stats\n{method} - Noise: {strength_of_noise}')
        
        stats.probplot(dependent_stats_min, dist="lognorm", sparams=(shape_min, loc_min, scale_min), plot=axes[0, 1])
        axes[0, 1].set_title(f'QQ Plot - Min Dependent Stats\n{method} - Noise: {strength_of_noise}')
        
        stats.probplot(dependent_stats_max, dist="lognorm", sparams=(shape_max, loc_max, scale_max), plot=axes[0, 2])
        axes[0, 2].set_title(f'QQ Plot - Max Dependent Stats\n{method} - Noise: {strength_of_noise}')
        
        # QQ plots for independent statistics
        stats.probplot(independent_stats_avg, dist="lognorm", sparams=(shape_ind_avg, loc_ind_avg, scale_ind_avg), plot=axes[1, 0])
        axes[1, 0].set_title(f'QQ Plot - Avg Independent Stats\n{method} - Noise: {strength_of_noise}')
        
        stats.probplot(independent_stats_min, dist="lognorm", sparams=(shape_ind_min, loc_ind_min, scale_ind_min), plot=axes[1, 1])
        axes[1, 1].set_title(f'QQ Plot - Min Independent Stats\n{method} - Noise: {strength_of_noise}')
        
        stats.probplot(independent_stats_max, dist="lognorm", sparams=(shape_ind_max, loc_ind_max, scale_ind_max), plot=axes[1, 2])
        axes[1, 2].set_title(f'QQ Plot - Max Independent Stats\n{method} - Noise: {strength_of_noise}')
        
        # Histograms with lognormal distribution for dependent statistics
        x_avg = np.linspace(dependent_stats_avg.min(), dependent_stats_avg.max(), 100)
        axes[2, 0].hist(dependent_stats_avg, bins=30, density=True, alpha=0.5)
        axes[2, 0].plot(x_avg, stats.lognorm.pdf(x_avg, shape_avg, loc=loc_avg, scale=scale_avg), 'r-', lw=2)
        axes[2, 0].set_title(f'Histogram - Avg Dependent Stats\n{method} - Noise: {strength_of_noise}')
        
        x_min = np.linspace(dependent_stats_min.min(), dependent_stats_min.max(), 100)
        axes[2, 1].hist(dependent_stats_min, bins=30, density=True, alpha=0.5)
        axes[2, 1].plot(x_min, stats.lognorm.pdf(x_min, shape_min, loc=loc_min, scale=scale_min), 'r-', lw=2)
        axes[2, 1].set_title(f'Histogram - Min Dependent Stats\n{method} - Noise: {strength_of_noise}')
        
        x_max = np.linspace(dependent_stats_max.min(), dependent_stats_max.max(), 100)
        axes[2, 2].hist(dependent_stats_max, bins=30, density=True, alpha=0.5)
        axes[2, 2].plot(x_max, stats.lognorm.pdf(x_max, shape_max, loc=loc_max, scale=scale_max), 'r-', lw=2)
        axes[2, 2].set_title(f'Histogram - Max Dependent Stats\n{method} - Noise: {strength_of_noise}')
        
        # Histograms with lognormal distribution for independent statistics
        x_ind_avg = np.linspace(independent_stats_avg.min(), independent_stats_avg.max(), 100)
        axes[3, 0].hist(independent_stats_avg, bins=30, density=True, alpha=0.5)
        axes[3, 0].plot(x_ind_avg, stats.lognorm.pdf(x_ind_avg, shape_ind_avg, loc=loc_ind_avg, scale=scale_ind_avg), 'r-', lw=2)
        axes[3, 0].set_title(f'Histogram - Avg Independent Stats\n{method} - Noise: {strength_of_noise}')
        
        x_ind_min = np.linspace(independent_stats_min.min(), independent_stats_min.max(), 100)
        axes[3, 1].hist(independent_stats_min, bins=30, density=True, alpha=0.5)
        axes[3, 1].plot(x_ind_min, stats.lognorm.pdf(x_ind_min, shape_ind_min, loc=loc_ind_min, scale=scale_ind_min), 'r-', lw=2)
        axes[3, 1].set_title(f'Histogram - Min Independent Stats\n{method} - Noise: {strength_of_noise}')
        
        x_ind_max = np.linspace(independent_stats_max.min(), independent_stats_max.max(), 100)
        axes[3, 2].hist(independent_stats_max, bins=30, density=True, alpha=0.5)
        axes[3, 2].plot(x_ind_max, stats.lognorm.pdf(x_ind_max, shape_ind_max, loc=loc_ind_max, scale=scale_ind_max), 'r-', lw=2)
        axes[3, 2].set_title(f'Histogram - Max Independent Stats\n{method} - Noise: {strength_of_noise}')
        
        plt.tight_layout()
        plt.show()

lognormal_df = pd.DataFrame(lognormal_results)

# Split into six tables using .loc to avoid SettingWithCopyWarning
avg_df = lognormal_df.loc[:, ['strength_of_noise', 'Method', 'dependent_avg_statistic', 'dependent_avg_pvalue', 'dependent_avg_is_lognormal', 'dependent_avg_shape', 'dependent_avg_loc', 'dependent_avg_scale', 'dependent_avg_ci_lower', 'dependent_avg_ci_upper']].copy()
min_df = lognormal_df.loc[:, ['strength_of_noise', 'Method', 'dependent_min_statistic', 'dependent_min_pvalue', 'dependent_min_is_lognormal', 'dependent_min_shape', 'dependent_min_loc', 'dependent_min_scale', 'dependent_min_ci_lower', 'dependent_min_ci_upper']].copy()
max_df = lognormal_df.loc[:, ['strength_of_noise', 'Method', 'dependent_max_statistic', 'dependent_max_pvalue', 'dependent_max_is_lognormal', 'dependent_max_shape', 'dependent_max_loc', 'dependent_max_scale', 'dependent_max_ci_lower', 'dependent_max_ci_upper']].copy()
ind_avg_df = lognormal_df.loc[:, ['strength_of_noise', 'Method', 'ind_avg_statistic', 'ind_avg_pvalue', 'ind_avg_is_lognormal', 'ind_avg_shape', 'ind_avg_loc', 'ind_avg_scale', 'ind_avg_ci_lower', 'ind_avg_ci_upper']].copy()
ind_min_df = lognormal_df.loc[:, ['strength_of_noise', 'Method', 'ind_min_statistic', 'ind_min_pvalue', 'ind_min_is_lognormal', 'ind_min_shape', 'ind_min_loc', 'ind_min_scale', 'ind_min_ci_lower', 'ind_min_ci_upper']].copy()
ind_max_df = lognormal_df.loc[:, ['strength_of_noise', 'Method', 'ind_max_statistic', 'ind_max_pvalue', 'ind_max_is_lognormal', 'ind_max_shape', 'ind_max_loc', 'ind_max_scale', 'ind_max_ci_lower', 'ind_max_ci_upper']].copy()

# Rename columns for clarity
avg_df.columns = ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'shape', 'loc', 'scale', 'ci_lower', 'ci_upper']
min_df.columns = ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'shape', 'loc', 'scale', 'ci_lower', 'ci_upper']
max_df.columns = ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'shape', 'loc', 'scale', 'ci_lower', 'ci_upper']
ind_avg_df.columns = ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'shape', 'loc', 'scale', 'ci_lower', 'ci_upper']
ind_min_df.columns = ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'shape', 'loc', 'scale', 'ci_lower', 'ci_upper']
ind_max_df.columns = ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'shape', 'loc', 'scale', 'ci_lower', 'ci_upper']

# Add a new column to identify the type
avg_df.loc[:, 'type'] = 'avg_dependent'
min_df.loc[:, 'type'] = 'min_dependent'
max_df.loc[:, 'type'] = 'max_dependent'
ind_avg_df.loc[:, 'type'] = 'avg_independent'
ind_min_df.loc[:, 'type'] = 'min_independent'
ind_max_df.loc[:, 'type'] = 'max_independent'

# Split the tables into three
stat_pvalue_df = pd.concat([avg_df.loc[:, ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'type']],
                            min_df.loc[:, ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'type']],
                            max_df.loc[:, ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'type']],
                            ind_avg_df.loc[:, ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'type']],
                            ind_min_df.loc[:, ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'type']],
                            ind_max_df.loc[:, ['strength_of_noise', 'Method', 'statistic', 'pvalue', 'is_lognormal', 'type']]])
stat_pvalue_df = stat_pvalue_df.sort_values(by=["Method", "strength_of_noise", "type"])

shape_loc_scale_df = pd.concat([avg_df.loc[:, ['strength_of_noise', 'Method', 'shape', 'loc', 'scale', 'type']],
                                min_df.loc[:, ['strength_of_noise', 'Method', 'shape', 'loc', 'scale', 'type']],
                                max_df.loc[:, ['strength_of_noise', 'Method', 'shape', 'loc', 'scale', 'type']],
                                ind_avg_df.loc[:, ['strength_of_noise', 'Method', 'shape', 'loc', 'scale', 'type']],
                                ind_min_df.loc[:, ['strength_of_noise', 'Method', 'shape', 'loc', 'scale', 'type']],
                                ind_max_df.loc[:, ['strength_of_noise', 'Method', 'shape', 'loc', 'scale', 'type']]])
shape_loc_scale_df = shape_loc_scale_df.sort_values(by=["Method", "strength_of_noise", "type"])
ci_df = pd.concat([avg_df.loc[:, ['strength_of_noise', 'Method', 'ci_lower', 'ci_upper', 'type']],
                   min_df.loc[:, ['strength_of_noise', 'Method', 'ci_lower', 'ci_upper', 'type']],
                   max_df.loc[:, ['strength_of_noise', 'Method', 'ci_lower', 'ci_upper', 'type']],
                   ind_avg_df.loc[:, ['strength_of_noise', 'Method', 'ci_lower', 'ci_upper', 'type']],
                   ind_min_df.loc[:, ['strength_of_noise', 'Method', 'ci_lower', 'ci_upper', 'type']],
                   ind_max_df.loc[:, ['strength_of_noise', 'Method', 'ci_lower', 'ci_upper', 'type']]])
ci_df = ci_df.sort_values(by=["Method", "strength_of_noise", "type"])
print()
print("========================================")
print(f"Lognormal Test Results - Statistics and P-values")
print("========================================")
print(stat_pvalue_df.to_string())
print()
print("========================================")
print(f"Lognormal Test Results - Shape, Loc, and Scale")
print("========================================")
print(shape_loc_scale_df.to_string())
print()
print("========================================")
print(f"Lognormal Test Results - Confidence Intervals")
print("========================================")
print(ci_df.to_string())
print()
print("========================================")
print(f"Lognormal Test Results - Confidence Intervals SHORT")
print("========================================")
print(ci_df[(ci_df["type"] == "min_dependent") | (ci_df["type"] == "max_independent")].to_string())
print()


################################################################################
# Create a figure for each method and strength of noise for comaping confidence intervals
################################################################################
methods = ci_df['Method'].unique()
strengths_of_noise = ci_df['strength_of_noise'].unique()

for method in methods:
    for strength in strengths_of_noise:
        method_strength_df = ci_df[(ci_df['Method'] == method) & (ci_df['strength_of_noise'] == strength)]
        
        if not method_strength_df.empty:
            # Original charts for avg, min, max
            fig, ax = plt.subplots(figsize=(10, 6))
            for dep_type in ['avg', 'min', 'max']:
                dep_df = method_strength_df[method_strength_df['type'].str.contains(dep_type)]
                if not dep_df.empty:
                    ax.errorbar(dep_df['type'], dep_df['ci_lower'], 
                                yerr=(dep_df['ci_upper'] - dep_df['ci_lower']) / 2, 
                                fmt='o', label=f'{method} - {strength} - {dep_type}')
            
            ax.set_xlabel('Type (avg, min, max)')
            ax.set_ylabel('Confidence Interval')
            ax.set_title(f'Confidence Intervals for {method} at Noise Strength {strength}')
            ax.legend()
            ax.grid(True)
            plt.show()
            
            # Additional charts for max_independent and min_dependent
            fig, ax = plt.subplots(figsize=(10, 6))
            for dep_type in ['max_independent', 'min_dependent']:
                dep_df = method_strength_df[method_strength_df['type'] == dep_type]
                if not dep_df.empty:
                    ax.errorbar(dep_df['type'], dep_df['ci_lower'], 
                                yerr=(dep_df['ci_upper'] - dep_df['ci_lower']) / 2, 
                                fmt='o', label=f'{method} - {strength} - {dep_type}')
            
            ax.set_xlabel('Type (max_independent, min_dependent)')
            ax.set_ylabel('Confidence Interval')
            ax.set_title(f'Confidence Intervals for {method} at Noise Strength {strength} (Additional)')
            ax.legend()
            ax.grid(True)
            plt.show()
/Users/artemlytvyn/Documents/внз/аспірантура/ii_semestr/paper/20250102/Random-Forest-Based-Method-for-Detecting-Feature-Dependencies/venv/lib/python3.9/site-packages/numba/np/ufunc/parallel.py:371: NumbaWarning: The TBB threading layer requires TBB version 2021 update 6 or later i.e., TBB_INTERFACE_VERSION >= 12060. Found TBB_INTERFACE_VERSION = 12050. The TBB threading layer is disabled.
  warnings.warn(problem)
OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
0.01 - 0 - Time taken: 0:00:49.717397
0.01 - 1 - Time taken: 0:00:51.758937
0.01 - 2 - Time taken: 0:00:50.638777
0.01 - 3 - Time taken: 0:00:51.008009
0.01 - 4 - Time taken: 0:00:47.793247
0.01 - 5 - Time taken: 0:00:50.874324
0.01 - 6 - Time taken: 0:00:48.946902
0.01 - 7 - Time taken: 0:00:51.943510
0.01 - 8 - Time taken: 0:00:53.663533
0.01 - 9 - Time taken: 0:00:52.058400
0.01 - 10 - Time taken: 0:00:52.780030
0.01 - 11 - Time taken: 0:00:53.441601
0.01 - 12 - Time taken: 0:00:53.633687
0.01 - 13 - Time taken: 0:00:53.988774
0.01 - 14 - Time taken: 0:00:56.841737
0.01 - 15 - Time taken: 0:00:53.318718
0.01 - 16 - Time taken: 0:00:53.437207
0.01 - 17 - Time taken: 0:00:54.685848
0.01 - 18 - Time taken: 0:00:59.138477
0.01 - 19 - Time taken: 0:00:57.048928
0.01 - 20 - Time taken: 0:00:55.625406
0.01 - 21 - Time taken: 0:00:55.402302
0.01 - 22 - Time taken: 0:00:59.196232
0.01 - 23 - Time taken: 0:00:54.719456
0.01 - 24 - Time taken: 0:00:52.707959
0.01 - 25 - Time taken: 0:00:54.362505
0.01 - 26 - Time taken: 0:00:54.801112
0.01 - 27 - Time taken: 0:00:57.129137
0.01 - 28 - Time taken: 0:00:54.970112
0.01 - 29 - Time taken: 0:00:54.518663
0.01 - 30 - Time taken: 0:00:55.834203
0.01 - 31 - Time taken: 0:00:52.979788
0.01 - 32 - Time taken: 0:00:54.789426
0.01 - 33 - Time taken: 0:00:55.447468
0.01 - 34 - Time taken: 0:00:53.196354
0.01 - 35 - Time taken: 0:00:52.492054
0.01 - 36 - Time taken: 0:00:55.419182
0.01 - 37 - Time taken: 0:00:53.828861
0.01 - 38 - Time taken: 0:00:53.772134
0.01 - 39 - Time taken: 0:00:51.261602
0.01 - 40 - Time taken: 0:00:51.518401
0.01 - 41 - Time taken: 0:00:50.293082
0.01 - 42 - Time taken: 0:00:47.754151
0.01 - 43 - Time taken: 0:00:49.329271
0.01 - 44 - Time taken: 0:00:48.837252
0.01 - 45 - Time taken: 0:00:49.144336
0.01 - 46 - Time taken: 0:00:47.782156
0.01 - 47 - Time taken: 0:00:49.585549
0.01 - 48 - Time taken: 0:00:50.368960
0.01 - 49 - Time taken: 0:00:49.516127
0.01 - 50 - Time taken: 0:00:46.766307
0.01 - 51 - Time taken: 0:00:48.022242
0.01 - 52 - Time taken: 0:00:48.934735
0.01 - 53 - Time taken: 0:00:48.388569
0.01 - 54 - Time taken: 0:00:48.978229
0.01 - 55 - Time taken: 0:00:48.240487
0.01 - 56 - Time taken: 0:00:51.466053
0.01 - 57 - Time taken: 0:00:51.796756
0.01 - 58 - Time taken: 0:00:48.256457
0.01 - 59 - Time taken: 0:00:48.904356
0.01 - 60 - Time taken: 0:00:49.353993
0.01 - 61 - Time taken: 0:00:51.083140
0.01 - 62 - Time taken: 0:00:50.116608
0.01 - 63 - Time taken: 0:00:48.883028
0.01 - 64 - Time taken: 0:00:49.413009
0.01 - 65 - Time taken: 0:00:50.534310
0.01 - 66 - Time taken: 0:00:48.437186
0.01 - 67 - Time taken: 0:00:49.740567
0.01 - 68 - Time taken: 0:00:51.167782
0.01 - 69 - Time taken: 0:00:50.740897
0.01 - 70 - Time taken: 0:00:48.576655
0.01 - 71 - Time taken: 0:00:48.143537
0.01 - 72 - Time taken: 0:00:48.092516
0.01 - 73 - Time taken: 0:00:49.201523
0.01 - 74 - Time taken: 0:00:48.816587
0.01 - 75 - Time taken: 0:00:49.455962
0.01 - 76 - Time taken: 0:00:49.744316
0.01 - 77 - Time taken: 0:00:49.059536
0.01 - 78 - Time taken: 0:00:47.946176
0.01 - 79 - Time taken: 0:00:50.088208
0.01 - 80 - Time taken: 0:00:48.814020
0.01 - 81 - Time taken: 0:00:47.940477
0.01 - 82 - Time taken: 0:00:47.444704
0.01 - 83 - Time taken: 0:00:49.183698
0.01 - 84 - Time taken: 0:00:47.119314
0.01 - 85 - Time taken: 0:00:47.590610
0.01 - 86 - Time taken: 0:00:48.960365
0.01 - 87 - Time taken: 0:00:48.747220
0.01 - 88 - Time taken: 0:00:49.358702
0.01 - 89 - Time taken: 0:00:49.979752
0.01 - 90 - Time taken: 0:00:49.025978
0.01 - 91 - Time taken: 0:00:48.749198
0.01 - 92 - Time taken: 0:00:48.309327
0.01 - 93 - Time taken: 0:00:47.946376
0.01 - 94 - Time taken: 0:00:48.145961
0.01 - 95 - Time taken: 0:00:48.785960
0.01 - 96 - Time taken: 0:00:51.156667
0.01 - 97 - Time taken: 0:00:48.040709
0.01 - 98 - Time taken: 0:00:48.666569
0.01 - 99 - Time taken: 0:00:50.598350
0.1 - 0 - Time taken: 0:00:48.532243
0.1 - 1 - Time taken: 0:00:48.551876
0.1 - 2 - Time taken: 0:00:48.230641
0.1 - 3 - Time taken: 0:00:49.165410
0.1 - 4 - Time taken: 0:00:47.225072
0.1 - 5 - Time taken: 0:00:47.726031
0.1 - 6 - Time taken: 0:00:47.152228
0.1 - 7 - Time taken: 0:00:47.229237
0.1 - 8 - Time taken: 0:00:49.543284
0.1 - 9 - Time taken: 0:00:48.387758
0.1 - 10 - Time taken: 0:00:49.452616
0.1 - 11 - Time taken: 0:00:48.424673
0.1 - 12 - Time taken: 0:00:48.357711
0.1 - 13 - Time taken: 0:00:47.693223
0.1 - 14 - Time taken: 0:00:47.965152
0.1 - 15 - Time taken: 0:00:49.366869
0.1 - 16 - Time taken: 0:00:47.198904
0.1 - 17 - Time taken: 0:00:48.150619
0.1 - 18 - Time taken: 0:00:49.757921
0.1 - 19 - Time taken: 0:00:48.366573
0.1 - 20 - Time taken: 0:00:47.351957
0.1 - 21 - Time taken: 0:00:47.649065
0.1 - 22 - Time taken: 0:00:51.002953
0.1 - 23 - Time taken: 0:00:48.087372
0.1 - 24 - Time taken: 0:00:47.871763
0.1 - 25 - Time taken: 0:00:49.277808
0.1 - 26 - Time taken: 0:00:48.897029
0.1 - 27 - Time taken: 0:00:50.743932
0.1 - 28 - Time taken: 0:00:51.294277
0.1 - 29 - Time taken: 0:00:49.038920
0.1 - 30 - Time taken: 0:00:51.053318
0.1 - 31 - Time taken: 0:00:49.787271
0.1 - 32 - Time taken: 0:00:49.705198
0.1 - 33 - Time taken: 0:00:48.233804
0.1 - 34 - Time taken: 0:00:49.435076
0.1 - 35 - Time taken: 0:00:48.996522
0.1 - 36 - Time taken: 0:00:50.163428
0.1 - 37 - Time taken: 0:00:47.880426
0.1 - 38 - Time taken: 0:00:48.856006
0.1 - 39 - Time taken: 0:00:48.526994
0.1 - 40 - Time taken: 0:00:50.486251
0.1 - 41 - Time taken: 0:00:48.313274
0.1 - 42 - Time taken: 0:00:48.022071
0.1 - 43 - Time taken: 0:00:48.920257
0.1 - 44 - Time taken: 0:00:47.483904
0.1 - 45 - Time taken: 0:00:49.648263
0.1 - 46 - Time taken: 0:00:46.796492
0.1 - 47 - Time taken: 0:00:50.019770
0.1 - 48 - Time taken: 0:00:50.543946
0.1 - 49 - Time taken: 0:00:49.422046
0.1 - 50 - Time taken: 0:00:47.910361
0.1 - 51 - Time taken: 0:00:47.435647
0.1 - 52 - Time taken: 0:00:48.048349
0.1 - 53 - Time taken: 0:00:48.025480
0.1 - 54 - Time taken: 0:00:47.214563
0.1 - 55 - Time taken: 0:00:47.040672
0.1 - 56 - Time taken: 0:00:50.282159
0.1 - 57 - Time taken: 0:00:50.789716
0.1 - 58 - Time taken: 0:00:48.354133
0.1 - 59 - Time taken: 0:00:47.402147
0.1 - 60 - Time taken: 0:00:49.770509
0.1 - 61 - Time taken: 0:00:49.404239
0.1 - 62 - Time taken: 0:00:49.929482
0.1 - 63 - Time taken: 0:00:48.584353
0.1 - 64 - Time taken: 0:00:49.333913
0.1 - 65 - Time taken: 0:00:49.545348
0.1 - 66 - Time taken: 0:00:47.798911
0.1 - 67 - Time taken: 0:00:48.787304
0.1 - 68 - Time taken: 0:00:48.551899
0.1 - 69 - Time taken: 0:00:49.983370
0.1 - 70 - Time taken: 0:00:48.843375
0.1 - 71 - Time taken: 0:00:48.376395
0.1 - 72 - Time taken: 0:00:48.038650
0.1 - 73 - Time taken: 0:00:48.251362
0.1 - 74 - Time taken: 0:00:49.281251
0.1 - 75 - Time taken: 0:00:49.878969
0.1 - 76 - Time taken: 0:00:48.832277
0.1 - 77 - Time taken: 0:00:47.938732
0.1 - 78 - Time taken: 0:00:49.926254
0.1 - 79 - Time taken: 0:00:50.199839
0.1 - 80 - Time taken: 0:00:49.120079
0.1 - 81 - Time taken: 0:00:48.125380
0.1 - 82 - Time taken: 0:00:47.673602
0.1 - 83 - Time taken: 0:00:49.303232
0.1 - 84 - Time taken: 0:00:47.433432
0.1 - 85 - Time taken: 0:00:48.588360
0.1 - 86 - Time taken: 0:00:48.812490
0.1 - 87 - Time taken: 0:00:47.561405
0.1 - 88 - Time taken: 0:00:49.540224
0.1 - 89 - Time taken: 0:00:50.440068
0.1 - 90 - Time taken: 0:00:47.714030
0.1 - 91 - Time taken: 0:00:48.984384
0.1 - 92 - Time taken: 0:00:48.851370
0.1 - 93 - Time taken: 0:00:47.221030
0.1 - 94 - Time taken: 0:00:48.710688
0.1 - 95 - Time taken: 0:00:48.330836
0.1 - 96 - Time taken: 0:00:50.372035
0.1 - 97 - Time taken: 0:00:47.662368
0.1 - 98 - Time taken: 0:00:47.939674
0.1 - 99 - Time taken: 0:00:50.215588
1 - 0 - Time taken: 0:00:48.325896
1 - 1 - Time taken: 0:00:47.025722
1 - 2 - Time taken: 0:00:48.040338
1 - 3 - Time taken: 0:00:47.913648
1 - 4 - Time taken: 0:00:44.189905
1 - 5 - Time taken: 0:00:48.917602
1 - 6 - Time taken: 0:00:45.736865
1 - 7 - Time taken: 0:00:51.488076
1 - 8 - Time taken: 0:00:48.565726
1 - 9 - Time taken: 0:00:48.984093
1 - 10 - Time taken: 0:00:48.372061
1 - 11 - Time taken: 0:00:45.466902
1 - 12 - Time taken: 0:00:47.745944
1 - 13 - Time taken: 0:00:46.081668
1 - 14 - Time taken: 0:00:50.107560
1 - 15 - Time taken: 0:00:48.279039
1 - 16 - Time taken: 0:00:47.499909
1 - 17 - Time taken: 0:00:48.688988
1 - 18 - Time taken: 0:00:47.775659
1 - 19 - Time taken: 0:00:47.236596
1 - 20 - Time taken: 0:00:49.661265
1 - 21 - Time taken: 0:00:46.447530
1 - 22 - Time taken: 0:00:49.552340
1 - 23 - Time taken: 0:00:49.259601
1 - 24 - Time taken: 0:00:47.143100
1 - 25 - Time taken: 0:00:47.733781
1 - 26 - Time taken: 0:00:47.697244
1 - 27 - Time taken: 0:00:47.653666
1 - 28 - Time taken: 0:00:50.913467
1 - 29 - Time taken: 0:00:44.422038
1 - 30 - Time taken: 0:00:44.902378
1 - 31 - Time taken: 0:00:47.370494
1 - 32 - Time taken: 0:00:45.137087
1 - 33 - Time taken: 0:00:48.158391
1 - 34 - Time taken: 0:00:47.854222
1 - 35 - Time taken: 0:00:47.461061
1 - 36 - Time taken: 0:00:48.606124
1 - 37 - Time taken: 0:00:47.017544
1 - 38 - Time taken: 0:00:47.524842
1 - 39 - Time taken: 0:00:49.171455
1 - 40 - Time taken: 0:00:48.329684
1 - 41 - Time taken: 0:00:48.111327
1 - 42 - Time taken: 0:00:46.624294
1 - 43 - Time taken: 0:00:47.794902
1 - 44 - Time taken: 0:00:46.981859
1 - 45 - Time taken: 0:00:45.405657
1 - 46 - Time taken: 0:00:47.507626
1 - 47 - Time taken: 0:00:49.973234
1 - 48 - Time taken: 0:00:48.323581
1 - 49 - Time taken: 0:00:47.237765
1 - 50 - Time taken: 0:00:44.132583
1 - 51 - Time taken: 0:00:44.383626
1 - 52 - Time taken: 0:00:45.744034
1 - 53 - Time taken: 0:00:47.014699
1 - 54 - Time taken: 0:00:46.589248
1 - 55 - Time taken: 0:00:44.373528
1 - 56 - Time taken: 0:00:49.151495
1 - 57 - Time taken: 0:00:48.773826
1 - 58 - Time taken: 0:00:47.169059
1 - 59 - Time taken: 0:00:47.486471
1 - 60 - Time taken: 0:00:47.982216
1 - 61 - Time taken: 0:00:47.660757
1 - 62 - Time taken: 0:00:49.287594
1 - 63 - Time taken: 0:00:44.367024
1 - 64 - Time taken: 0:00:48.369273
1 - 65 - Time taken: 0:00:48.071183
1 - 66 - Time taken: 0:00:48.780377
1 - 67 - Time taken: 0:00:47.153313
1 - 68 - Time taken: 0:00:45.799732
1 - 69 - Time taken: 0:00:48.335838
1 - 70 - Time taken: 0:00:48.930825
1 - 71 - Time taken: 0:00:47.198449
1 - 72 - Time taken: 0:00:48.369006
1 - 73 - Time taken: 0:00:47.893085
1 - 74 - Time taken: 0:00:48.186348
1 - 75 - Time taken: 0:00:48.678116
1 - 76 - Time taken: 0:00:46.051097
1 - 77 - Time taken: 0:00:47.702513
1 - 78 - Time taken: 0:00:49.896564
1 - 79 - Time taken: 0:00:47.854807
1 - 80 - Time taken: 0:00:45.564134
1 - 81 - Time taken: 0:00:45.542789
1 - 82 - Time taken: 0:00:44.998965
1 - 83 - Time taken: 0:00:47.747604
1 - 84 - Time taken: 0:00:44.520958
1 - 85 - Time taken: 0:00:47.459498
1 - 86 - Time taken: 0:00:45.270028
1 - 87 - Time taken: 0:00:49.062045
1 - 88 - Time taken: 0:00:49.178502
1 - 89 - Time taken: 0:00:49.217744
1 - 90 - Time taken: 0:00:47.177960
1 - 91 - Time taken: 0:00:47.500865
1 - 92 - Time taken: 0:00:47.618334
1 - 93 - Time taken: 0:00:47.748290
1 - 94 - Time taken: 0:00:44.515575
1 - 95 - Time taken: 0:00:48.258919
1 - 96 - Time taken: 0:00:50.237329
1 - 97 - Time taken: 0:00:44.307538
1 - 98 - Time taken: 0:00:49.967621
1 - 99 - Time taken: 0:00:48.735639
10 - 0 - Time taken: 0:00:45.271792
10 - 1 - Time taken: 0:00:44.018583
10 - 2 - Time taken: 0:00:44.348055
10 - 3 - Time taken: 0:00:45.131885
10 - 4 - Time taken: 0:00:44.506423
10 - 5 - Time taken: 0:00:45.562742
10 - 6 - Time taken: 0:00:46.258113
10 - 7 - Time taken: 0:00:46.801412
10 - 8 - Time taken: 0:00:45.439179
10 - 9 - Time taken: 0:00:44.208420
10 - 10 - Time taken: 0:00:45.024347
10 - 11 - Time taken: 0:00:43.782946
10 - 12 - Time taken: 0:00:45.068534
10 - 13 - Time taken: 0:00:44.973013
10 - 14 - Time taken: 0:00:45.307165
10 - 15 - Time taken: 0:00:45.004183
10 - 16 - Time taken: 0:00:45.520332
10 - 17 - Time taken: 0:00:44.431346
10 - 18 - Time taken: 0:00:44.666534
10 - 19 - Time taken: 0:00:44.217974
10 - 20 - Time taken: 0:00:45.370707
10 - 21 - Time taken: 0:00:44.619426
10 - 22 - Time taken: 0:00:47.954942
10 - 23 - Time taken: 0:00:44.861573
10 - 24 - Time taken: 0:00:44.745125
10 - 25 - Time taken: 0:00:47.582392
10 - 26 - Time taken: 0:00:47.781711
10 - 27 - Time taken: 0:00:44.598515
10 - 28 - Time taken: 0:00:46.094992
10 - 29 - Time taken: 0:00:44.248555
10 - 30 - Time taken: 0:00:44.620831
10 - 31 - Time taken: 0:00:47.379411
10 - 32 - Time taken: 0:00:47.034671
10 - 33 - Time taken: 0:00:45.216628
10 - 34 - Time taken: 0:00:44.937677
10 - 35 - Time taken: 0:00:44.120987
10 - 36 - Time taken: 0:00:46.843186
10 - 37 - Time taken: 0:00:44.137359
10 - 38 - Time taken: 0:00:44.475684
10 - 39 - Time taken: 0:00:46.399081
10 - 40 - Time taken: 0:00:45.007295
10 - 41 - Time taken: 0:00:44.575568
10 - 42 - Time taken: 0:00:43.960960
10 - 43 - Time taken: 0:00:45.120804
10 - 44 - Time taken: 0:00:44.346338
10 - 45 - Time taken: 0:00:44.846642
10 - 46 - Time taken: 0:00:44.516919
10 - 47 - Time taken: 0:00:47.879586
10 - 48 - Time taken: 0:00:45.311781
10 - 49 - Time taken: 0:00:45.103248
10 - 50 - Time taken: 0:00:46.156954
10 - 51 - Time taken: 0:00:43.581846
10 - 52 - Time taken: 0:00:45.063504
10 - 53 - Time taken: 0:00:44.620237
10 - 54 - Time taken: 0:00:43.889309
10 - 55 - Time taken: 0:00:44.382200
10 - 56 - Time taken: 0:00:50.201223
10 - 57 - Time taken: 0:00:46.268356
10 - 58 - Time taken: 0:00:45.469435
10 - 59 - Time taken: 0:00:45.098138
10 - 60 - Time taken: 0:00:46.491874
10 - 61 - Time taken: 0:00:47.591511
10 - 62 - Time taken: 0:00:45.024458
10 - 63 - Time taken: 0:00:46.945892
10 - 64 - Time taken: 0:00:46.779460
10 - 65 - Time taken: 0:00:43.970297
10 - 66 - Time taken: 0:00:44.460351
10 - 67 - Time taken: 0:00:44.923995
10 - 68 - Time taken: 0:00:47.789867
10 - 69 - Time taken: 0:00:46.243099
10 - 70 - Time taken: 0:00:44.696943
10 - 71 - Time taken: 0:00:45.661103
10 - 72 - Time taken: 0:00:44.719036
10 - 73 - Time taken: 0:00:46.973053
10 - 74 - Time taken: 0:00:45.379042
10 - 75 - Time taken: 0:00:45.146471
10 - 76 - Time taken: 0:00:44.931453
10 - 77 - Time taken: 0:00:44.805966
10 - 78 - Time taken: 0:00:48.162813
10 - 79 - Time taken: 0:00:45.432568
10 - 80 - Time taken: 0:00:47.368805
10 - 81 - Time taken: 0:00:44.274821
10 - 82 - Time taken: 0:00:47.202256
10 - 83 - Time taken: 0:00:44.806783
10 - 84 - Time taken: 0:00:45.491319
10 - 85 - Time taken: 0:00:46.828928
10 - 86 - Time taken: 0:00:47.195567
10 - 87 - Time taken: 0:00:44.396019
10 - 88 - Time taken: 0:00:45.516939
10 - 89 - Time taken: 0:00:45.535427
10 - 90 - Time taken: 0:00:44.898182
10 - 91 - Time taken: 0:00:45.256641
10 - 92 - Time taken: 0:00:44.638529
10 - 93 - Time taken: 0:00:44.201848
10 - 94 - Time taken: 0:00:44.016460
10 - 95 - Time taken: 0:00:45.285589
10 - 96 - Time taken: 0:00:46.271772
10 - 97 - Time taken: 0:00:44.286821
10 - 98 - Time taken: 0:00:44.813473
10 - 99 - Time taken: 0:00:46.332850

========================================
Accuracy, Sensitivity, Precision, and Recall for top3_selected_features
========================================
    strength_of_noise                     Method  accuracy  precision    recall
2                0.01       Distance_Correlation  0.448276   0.495984  0.823333
6                0.10       Distance_Correlation  0.447273   0.495968  0.820000
10               1.00       Distance_Correlation  0.689655   0.689655  1.000000
14              10.00       Distance_Correlation  0.680272   0.680272  1.000000
1                0.01         Mutual_Information  0.413613   0.464706  0.790000
5                0.10         Mutual_Information  0.423550   0.472549  0.803333
9                1.00         Mutual_Information  0.646552   0.646552  1.000000
13              10.00         Mutual_Information  0.407801   0.465587  0.766667
0                0.01  Pearson_Correlation_(abs)  0.436594   0.488844  0.803333
4                0.10  Pearson_Correlation_(abs)  0.436594   0.488844  0.803333
8                1.00  Pearson_Correlation_(abs)  0.441230   0.490946  0.813333
12              10.00  Pearson_Correlation_(abs)  0.448718   0.498982  0.816667
3                0.01            Proposed_Method  1.000000   1.000000  1.000000
7                0.10            Proposed_Method  1.000000   1.000000  1.000000
11               1.00            Proposed_Method  1.000000   1.000000  1.000000
15              10.00            Proposed_Method  0.562500   0.720000  0.720000

========================================
t-test; Comparison Results - Independent vs Dependent Feature Statistics
========================================
     strength_of_noise                     Method ind_stat dep_stat        p_value  dep_stat_greater_than_ind_stat
19                0.01       Distance_Correlation      avg      avg   0.000000e+00                            True
20                0.01       Distance_Correlation      avg      max   0.000000e+00                            True
18                0.01       Distance_Correlation      avg      min   1.000000e+00                           False
22                0.01       Distance_Correlation      max      avg  1.268140e-206                            True
23                0.01       Distance_Correlation      max      max  1.644155e-244                            True
21                0.01       Distance_Correlation      max      min   1.000000e+00                           False
16                0.01       Distance_Correlation      min      avg  6.609361e-310                            True
17                0.01       Distance_Correlation      min      max   0.000000e+00                            True
15                0.01       Distance_Correlation      min      min   1.871583e-30                            True
52                0.10       Distance_Correlation      avg      avg   0.000000e+00                            True
53                0.10       Distance_Correlation      avg      max   0.000000e+00                            True
51                0.10       Distance_Correlation      avg      min   1.000000e+00                           False
55                0.10       Distance_Correlation      max      avg  6.531916e-207                            True
56                0.10       Distance_Correlation      max      max  6.467830e-245                            True
54                0.10       Distance_Correlation      max      min   1.000000e+00                           False
49                0.10       Distance_Correlation      min      avg  1.798652e-306                            True
50                0.10       Distance_Correlation      min      max   0.000000e+00                            True
48                0.10       Distance_Correlation      min      min   4.619651e-30                            True
85                1.00       Distance_Correlation      avg      avg  2.470328e-323                            True
86                1.00       Distance_Correlation      avg      max   0.000000e+00                            True
84                1.00       Distance_Correlation      avg      min   8.802264e-01                           False
88                1.00       Distance_Correlation      max      avg  4.438982e-204                            True
89                1.00       Distance_Correlation      max      max  9.948053e-237                            True
87                1.00       Distance_Correlation      max      min   1.000000e+00                           False
82                1.00       Distance_Correlation      min      avg  5.202952e-304                            True
83                1.00       Distance_Correlation      min      max   0.000000e+00                            True
81                1.00       Distance_Correlation      min      min   1.200883e-34                            True
118              10.00       Distance_Correlation      avg      avg   0.000000e+00                            True
119              10.00       Distance_Correlation      avg      max   0.000000e+00                            True
117              10.00       Distance_Correlation      avg      min   9.378119e-01                           False
121              10.00       Distance_Correlation      max      avg  1.218677e-212                            True
122              10.00       Distance_Correlation      max      max  1.110201e-248                            True
120              10.00       Distance_Correlation      max      min   1.000000e+00                           False
115              10.00       Distance_Correlation      min      avg  1.539959e-305                            True
116              10.00       Distance_Correlation      min      max   0.000000e+00                            True
114              10.00       Distance_Correlation      min      min   6.369353e-34                            True
10                0.01         Mutual_Information      avg      avg  1.436968e-250                            True
11                0.01         Mutual_Information      avg      max  6.410662e-267                            True
9                 0.01         Mutual_Information      avg      min   9.325802e-01                            True
13                0.01         Mutual_Information      max      avg  5.675045e-208                            True
14                0.01         Mutual_Information      max      max  4.098846e-231                            True
12                0.01         Mutual_Information      max      min   1.000000e+00                           False
43                0.10         Mutual_Information      avg      avg  1.280494e-230                            True
44                0.10         Mutual_Information      avg      max  4.133666e-250                            True
42                0.10         Mutual_Information      avg      min   8.790028e-01                            True
46                0.10         Mutual_Information      max      avg  1.526221e-182                            True
47                0.10         Mutual_Information      max      max  1.643102e-212                            True
45                0.10         Mutual_Information      max      min   1.000000e+00                           False
76                1.00         Mutual_Information      avg      avg  7.848954e-186                            True
77                1.00         Mutual_Information      avg      max  2.167025e-210                            True
75                1.00         Mutual_Information      avg      min   2.170856e-03                            True
79                1.00         Mutual_Information      max      avg  5.157670e-100                            True
80                1.00         Mutual_Information      max      max  3.716452e-150                            True
78                1.00         Mutual_Information      max      min   1.000000e+00                           False
109              10.00         Mutual_Information      avg      avg  6.306856e-226                            True
110              10.00         Mutual_Information      avg      max  3.252127e-247                            True
108              10.00         Mutual_Information      avg      min   3.001256e-01                            True
112              10.00         Mutual_Information      max      avg  2.520611e-170                            True
113              10.00         Mutual_Information      max      max  8.916965e-205                            True
111              10.00         Mutual_Information      max      min   1.000000e+00                           False
4                 0.01  Pearson_Correlation_(abs)      avg      avg  7.065184e-248                            True
5                 0.01  Pearson_Correlation_(abs)      avg      max  1.470024e-274                            True
3                 0.01  Pearson_Correlation_(abs)      avg      min   1.000000e+00                           False
7                 0.01  Pearson_Correlation_(abs)      max      avg  2.088200e-180                            True
8                 0.01  Pearson_Correlation_(abs)      max      max  5.124619e-218                            True
6                 0.01  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
1                 0.01  Pearson_Correlation_(abs)      min      avg  2.977720e-123                            True
2                 0.01  Pearson_Correlation_(abs)      min      max  4.529762e-135                            True
0                 0.01  Pearson_Correlation_(abs)      min      min   8.382678e-26                            True
37                0.10  Pearson_Correlation_(abs)      avg      avg  4.176059e-248                            True
38                0.10  Pearson_Correlation_(abs)      avg      max  8.458663e-275                            True
36                0.10  Pearson_Correlation_(abs)      avg      min   1.000000e+00                           False
40                0.10  Pearson_Correlation_(abs)      max      avg  1.698767e-180                            True
41                0.10  Pearson_Correlation_(abs)      max      max  3.722121e-218                            True
39                0.10  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
34                0.10  Pearson_Correlation_(abs)      min      avg  1.421838e-124                            True
35                0.10  Pearson_Correlation_(abs)      min      max  2.292644e-136                            True
33                0.10  Pearson_Correlation_(abs)      min      min   2.158457e-24                            True
70                1.00  Pearson_Correlation_(abs)      avg      avg  1.026872e-245                            True
71                1.00  Pearson_Correlation_(abs)      avg      max  6.829002e-274                            True
69                1.00  Pearson_Correlation_(abs)      avg      min   1.000000e+00                           False
73                1.00  Pearson_Correlation_(abs)      max      avg  3.125562e-174                            True
74                1.00  Pearson_Correlation_(abs)      max      max  5.543969e-215                            True
72                1.00  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
67                1.00  Pearson_Correlation_(abs)      min      avg  3.823491e-117                            True
68                1.00  Pearson_Correlation_(abs)      min      max  3.340235e-129                            True
66                1.00  Pearson_Correlation_(abs)      min      min   3.699240e-28                            True
103              10.00  Pearson_Correlation_(abs)      avg      avg  4.879926e-149                            True
104              10.00  Pearson_Correlation_(abs)      avg      max  4.353701e-198                            True
102              10.00  Pearson_Correlation_(abs)      avg      min   1.000000e+00                           False
106              10.00  Pearson_Correlation_(abs)      max      avg   8.394356e-15                            True
107              10.00  Pearson_Correlation_(abs)      max      max  1.693590e-119                            True
105              10.00  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
100              10.00  Pearson_Correlation_(abs)      min      avg   6.595442e-97                            True
101              10.00  Pearson_Correlation_(abs)      min      max  1.024629e-109                            True
99               10.00  Pearson_Correlation_(abs)      min      min   3.854999e-29                            True
28                0.01            Proposed_Method      avg      avg  1.679501e-169                            True
29                0.01            Proposed_Method      avg      max  6.759278e-164                            True
27                0.01            Proposed_Method      avg      min  5.621826e-159                            True
31                0.01            Proposed_Method      max      avg  1.424619e-168                            True
32                0.01            Proposed_Method      max      max  7.829450e-163                            True
30                0.01            Proposed_Method      max      min  9.052076e-158                            True
25                0.01            Proposed_Method      min      avg  1.241999e-169                            True
26                0.01            Proposed_Method      min      max  2.299999e-164                            True
24                0.01            Proposed_Method      min      min  2.065478e-159                            True
61                0.10            Proposed_Method      avg      avg  1.295042e-170                            True
62                0.10            Proposed_Method      avg      max  3.708139e-167                            True
60                0.10            Proposed_Method      avg      min  1.191810e-151                            True
64                0.10            Proposed_Method      max      avg  8.894409e-170                            True
65                0.10            Proposed_Method      max      max  3.532808e-166                            True
63                0.10            Proposed_Method      max      min  3.026656e-150                            True
58                0.10            Proposed_Method      min      avg  3.316838e-170                            True
59                0.10            Proposed_Method      min      max  3.641916e-167                            True
57                0.10            Proposed_Method      min      min  5.157481e-152                            True
94                1.00            Proposed_Method      avg      avg   4.475353e-75                            True
95                1.00            Proposed_Method      avg      max   2.842803e-70                            True
93                1.00            Proposed_Method      avg      min   1.439336e-72                            True
97                1.00            Proposed_Method      max      avg   7.281791e-75                            True
98                1.00            Proposed_Method      max      max   5.665775e-69                            True
96                1.00            Proposed_Method      max      min   4.146134e-76                            True
91                1.00            Proposed_Method      min      avg   2.219695e-74                            True
92                1.00            Proposed_Method      min      max   7.333598e-71                            True
90                1.00            Proposed_Method      min      min   6.409087e-69                            True
127              10.00            Proposed_Method      avg      avg  1.532925e-146                            True
128              10.00            Proposed_Method      avg      max  3.736827e-161                            True
126              10.00            Proposed_Method      avg      min   2.132938e-01                            True
130              10.00            Proposed_Method      max      avg  5.524494e-145                            True
131              10.00            Proposed_Method      max      max  5.077660e-160                            True
129              10.00            Proposed_Method      max      min   9.988705e-01                           False
124              10.00            Proposed_Method      min      avg  2.758843e-144                            True
125              10.00            Proposed_Method      min      max  1.176643e-159                            True
123              10.00            Proposed_Method      min      min   1.517789e-05                            True

========================================
t-test; Comparison Results - Independent vs Dependent Feature Statistics SHORT
========================================
     strength_of_noise                     Method ind_stat dep_stat        p_value  dep_stat_greater_than_ind_stat
21                0.01       Distance_Correlation      max      min   1.000000e+00                           False
54                0.10       Distance_Correlation      max      min   1.000000e+00                           False
87                1.00       Distance_Correlation      max      min   1.000000e+00                           False
120              10.00       Distance_Correlation      max      min   1.000000e+00                           False
12                0.01         Mutual_Information      max      min   1.000000e+00                           False
45                0.10         Mutual_Information      max      min   1.000000e+00                           False
78                1.00         Mutual_Information      max      min   1.000000e+00                           False
111              10.00         Mutual_Information      max      min   1.000000e+00                           False
6                 0.01  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
39                0.10  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
72                1.00  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
105              10.00  Pearson_Correlation_(abs)      max      min   1.000000e+00                           False
30                0.01            Proposed_Method      max      min  9.052076e-158                            True
63                0.10            Proposed_Method      max      min  3.026656e-150                            True
96                1.00            Proposed_Method      max      min   4.146134e-76                            True
129              10.00            Proposed_Method      max      min   9.988705e-01                           False


========================================
Mann-Whitney U test; Comparison Results - Independent vs Dependent Feature Statistics
========================================
     strength_of_noise                     Method ind_stat dep_stat       p_value  dep_stat_greater_than_ind_stat
19                0.01       Distance_Correlation      avg      avg  1.281072e-34                            True
20                0.01       Distance_Correlation      avg      max  1.281072e-34                            True
18                0.01       Distance_Correlation      avg      min  1.000000e+00                           False
22                0.01       Distance_Correlation      max      avg  1.281072e-34                            True
23                0.01       Distance_Correlation      max      max  1.281072e-34                            True
21                0.01       Distance_Correlation      max      min  1.000000e+00                           False
16                0.01       Distance_Correlation      min      avg  1.281072e-34                            True
17                0.01       Distance_Correlation      min      max  1.281072e-34                            True
15                0.01       Distance_Correlation      min      min  7.102994e-27                            True
52                0.10       Distance_Correlation      avg      avg  1.281072e-34                            True
53                0.10       Distance_Correlation      avg      max  1.281072e-34                            True
51                0.10       Distance_Correlation      avg      min  1.000000e+00                           False
55                0.10       Distance_Correlation      max      avg  1.281072e-34                            True
56                0.10       Distance_Correlation      max      max  1.281072e-34                            True
54                0.10       Distance_Correlation      max      min  1.000000e+00                           False
49                0.10       Distance_Correlation      min      avg  1.281072e-34                            True
50                0.10       Distance_Correlation      min      max  1.281072e-34                            True
48                0.10       Distance_Correlation      min      min  6.393576e-27                            True
85                1.00       Distance_Correlation      avg      avg  1.281072e-34                            True
86                1.00       Distance_Correlation      avg      max  1.281072e-34                            True
84                1.00       Distance_Correlation      avg      min  9.634516e-01                           False
88                1.00       Distance_Correlation      max      avg  1.281072e-34                            True
89                1.00       Distance_Correlation      max      max  1.281072e-34                            True
87                1.00       Distance_Correlation      max      min  1.000000e+00                           False
82                1.00       Distance_Correlation      min      avg  1.281072e-34                            True
83                1.00       Distance_Correlation      min      max  1.281072e-34                            True
81                1.00       Distance_Correlation      min      min  6.165218e-29                            True
118              10.00       Distance_Correlation      avg      avg  1.281072e-34                            True
119              10.00       Distance_Correlation      avg      max  1.281072e-34                            True
117              10.00       Distance_Correlation      avg      min  9.850326e-01                           False
121              10.00       Distance_Correlation      max      avg  1.281072e-34                            True
122              10.00       Distance_Correlation      max      max  1.281072e-34                            True
120              10.00       Distance_Correlation      max      min  1.000000e+00                           False
115              10.00       Distance_Correlation      min      avg  1.281072e-34                            True
116              10.00       Distance_Correlation      min      max  1.281072e-34                            True
114              10.00       Distance_Correlation      min      min  1.986888e-28                            True
10                0.01         Mutual_Information      avg      avg  1.281072e-34                            True
11                0.01         Mutual_Information      avg      max  1.281072e-34                            True
9                 0.01         Mutual_Information      avg      min  6.608099e-01                            True
13                0.01         Mutual_Information      max      avg  1.281072e-34                            True
14                0.01         Mutual_Information      max      max  1.281072e-34                            True
12                0.01         Mutual_Information      max      min  1.000000e+00                           False
43                0.10         Mutual_Information      avg      avg  1.281072e-34                            True
44                0.10         Mutual_Information      avg      max  1.281072e-34                            True
42                0.10         Mutual_Information      avg      min  5.176252e-01                            True
46                0.10         Mutual_Information      max      avg  1.281072e-34                            True
47                0.10         Mutual_Information      max      max  1.281072e-34                            True
45                0.10         Mutual_Information      max      min  1.000000e+00                           False
76                1.00         Mutual_Information      avg      avg  1.281072e-34                            True
77                1.00         Mutual_Information      avg      max  1.281072e-34                            True
75                1.00         Mutual_Information      avg      min  9.724465e-05                            True
79                1.00         Mutual_Information      max      avg  1.281072e-34                            True
80                1.00         Mutual_Information      max      max  1.281072e-34                            True
78                1.00         Mutual_Information      max      min  1.000000e+00                           False
109              10.00         Mutual_Information      avg      avg  1.281072e-34                            True
110              10.00         Mutual_Information      avg      max  1.281072e-34                            True
108              10.00         Mutual_Information      avg      min  5.232635e-02                            True
112              10.00         Mutual_Information      max      avg  1.281072e-34                            True
113              10.00         Mutual_Information      max      max  1.281072e-34                            True
111              10.00         Mutual_Information      max      min  1.000000e+00                           False
4                 0.01  Pearson_Correlation_(abs)      avg      avg  1.281072e-34                            True
5                 0.01  Pearson_Correlation_(abs)      avg      max  1.281072e-34                            True
3                 0.01  Pearson_Correlation_(abs)      avg      min  1.000000e+00                           False
7                 0.01  Pearson_Correlation_(abs)      max      avg  1.281072e-34                            True
8                 0.01  Pearson_Correlation_(abs)      max      max  1.281072e-34                            True
6                 0.01  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
1                 0.01  Pearson_Correlation_(abs)      min      avg  1.281072e-34                            True
2                 0.01  Pearson_Correlation_(abs)      min      max  1.281072e-34                            True
0                 0.01  Pearson_Correlation_(abs)      min      min  1.221689e-23                            True
37                0.10  Pearson_Correlation_(abs)      avg      avg  1.281072e-34                            True
38                0.10  Pearson_Correlation_(abs)      avg      max  1.281072e-34                            True
36                0.10  Pearson_Correlation_(abs)      avg      min  1.000000e+00                           False
40                0.10  Pearson_Correlation_(abs)      max      avg  1.281072e-34                            True
41                0.10  Pearson_Correlation_(abs)      max      max  1.281072e-34                            True
39                0.10  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
34                0.10  Pearson_Correlation_(abs)      min      avg  1.281072e-34                            True
35                0.10  Pearson_Correlation_(abs)      min      max  1.281072e-34                            True
33                0.10  Pearson_Correlation_(abs)      min      min  5.954546e-23                            True
70                1.00  Pearson_Correlation_(abs)      avg      avg  1.281072e-34                            True
71                1.00  Pearson_Correlation_(abs)      avg      max  1.281072e-34                            True
69                1.00  Pearson_Correlation_(abs)      avg      min  1.000000e+00                           False
73                1.00  Pearson_Correlation_(abs)      max      avg  1.281072e-34                            True
74                1.00  Pearson_Correlation_(abs)      max      max  1.281072e-34                            True
72                1.00  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
67                1.00  Pearson_Correlation_(abs)      min      avg  1.281072e-34                            True
68                1.00  Pearson_Correlation_(abs)      min      max  1.281072e-34                            True
66                1.00  Pearson_Correlation_(abs)      min      min  8.764220e-27                            True
103              10.00  Pearson_Correlation_(abs)      avg      avg  1.281072e-34                            True
104              10.00  Pearson_Correlation_(abs)      avg      max  1.281072e-34                            True
102              10.00  Pearson_Correlation_(abs)      avg      min  1.000000e+00                           False
106              10.00  Pearson_Correlation_(abs)      max      avg  1.963020e-13                            True
107              10.00  Pearson_Correlation_(abs)      max      max  1.281072e-34                            True
105              10.00  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
100              10.00  Pearson_Correlation_(abs)      min      avg  1.281072e-34                            True
101              10.00  Pearson_Correlation_(abs)      min      max  1.281072e-34                            True
99               10.00  Pearson_Correlation_(abs)      min      min  3.775798e-26                            True
28                0.01            Proposed_Method      avg      avg  1.281072e-34                            True
29                0.01            Proposed_Method      avg      max  1.281072e-34                            True
27                0.01            Proposed_Method      avg      min  1.281072e-34                            True
31                0.01            Proposed_Method      max      avg  1.281072e-34                            True
32                0.01            Proposed_Method      max      max  1.281072e-34                            True
30                0.01            Proposed_Method      max      min  1.281072e-34                            True
25                0.01            Proposed_Method      min      avg  1.281072e-34                            True
26                0.01            Proposed_Method      min      max  1.281072e-34                            True
24                0.01            Proposed_Method      min      min  1.281072e-34                            True
61                0.10            Proposed_Method      avg      avg  1.281072e-34                            True
62                0.10            Proposed_Method      avg      max  1.281072e-34                            True
60                0.10            Proposed_Method      avg      min  1.281072e-34                            True
64                0.10            Proposed_Method      max      avg  1.281072e-34                            True
65                0.10            Proposed_Method      max      max  1.281072e-34                            True
63                0.10            Proposed_Method      max      min  1.281072e-34                            True
58                0.10            Proposed_Method      min      avg  1.281072e-34                            True
59                0.10            Proposed_Method      min      max  1.281072e-34                            True
57                0.10            Proposed_Method      min      min  1.281072e-34                            True
94                1.00            Proposed_Method      avg      avg  1.281072e-34                            True
95                1.00            Proposed_Method      avg      max  1.281072e-34                            True
93                1.00            Proposed_Method      avg      min  1.281072e-34                            True
97                1.00            Proposed_Method      max      avg  1.281072e-34                            True
98                1.00            Proposed_Method      max      max  1.281072e-34                            True
96                1.00            Proposed_Method      max      min  1.281072e-34                            True
91                1.00            Proposed_Method      min      avg  1.281072e-34                            True
92                1.00            Proposed_Method      min      max  1.281072e-34                            True
90                1.00            Proposed_Method      min      min  1.281072e-34                            True
127              10.00            Proposed_Method      avg      avg  1.281072e-34                            True
128              10.00            Proposed_Method      avg      max  1.281072e-34                            True
126              10.00            Proposed_Method      avg      min  1.905273e-01                            True
130              10.00            Proposed_Method      max      avg  1.281072e-34                            True
131              10.00            Proposed_Method      max      max  1.281072e-34                            True
129              10.00            Proposed_Method      max      min  9.985107e-01                           False
124              10.00            Proposed_Method      min      avg  1.281072e-34                            True
125              10.00            Proposed_Method      min      max  1.281072e-34                            True
123              10.00            Proposed_Method      min      min  1.679508e-05                            True

========================================
Mann-Whitney U test; Comparison Results - Independent vs Dependent Feature Statistics SHORT
========================================
     strength_of_noise                     Method ind_stat dep_stat       p_value  dep_stat_greater_than_ind_stat
21                0.01       Distance_Correlation      max      min  1.000000e+00                           False
54                0.10       Distance_Correlation      max      min  1.000000e+00                           False
87                1.00       Distance_Correlation      max      min  1.000000e+00                           False
120              10.00       Distance_Correlation      max      min  1.000000e+00                           False
12                0.01         Mutual_Information      max      min  1.000000e+00                           False
45                0.10         Mutual_Information      max      min  1.000000e+00                           False
78                1.00         Mutual_Information      max      min  1.000000e+00                           False
111              10.00         Mutual_Information      max      min  1.000000e+00                           False
6                 0.01  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
39                0.10  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
72                1.00  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
105              10.00  Pearson_Correlation_(abs)      max      min  1.000000e+00                           False
30                0.01            Proposed_Method      max      min  1.281072e-34                            True
63                0.10            Proposed_Method      max      min  1.281072e-34                            True
96                1.00            Proposed_Method      max      min  1.281072e-34                            True
129              10.00            Proposed_Method      max      min  9.985107e-01                           False

No description has been provided for this image
/Users/artemlytvyn/Documents/внз/аспірантура/ii_semestr/paper/20250102/Random-Forest-Based-Method-for-Detecting-Feature-Dependencies/venv/lib/python3.9/site-packages/numpy/lib/_histograms_impl.py:895: RuntimeWarning: invalid value encountered in divide
  return n/db/n.sum(), bin_edges
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
========================================
Lognormal Test Results - Statistics and P-values
========================================
    strength_of_noise                     Method  statistic        pvalue  is_lognormal             type
2                0.01       Distance_Correlation   0.065538  7.585469e-01          True    avg_dependent
2                0.01       Distance_Correlation   0.052421  9.327870e-01          True  avg_independent
2                0.01       Distance_Correlation   0.039088  9.965391e-01          True    max_dependent
2                0.01       Distance_Correlation   0.075314  5.950917e-01          True  max_independent
2                0.01       Distance_Correlation   0.082711  4.756441e-01          True    min_dependent
2                0.01       Distance_Correlation   0.054965  9.067436e-01          True  min_independent
6                0.10       Distance_Correlation   0.064476  7.755371e-01          True    avg_dependent
6                0.10       Distance_Correlation   0.061038  8.280024e-01          True  avg_independent
6                0.10       Distance_Correlation   0.039960  9.953674e-01          True    max_dependent
6                0.10       Distance_Correlation   0.065715  7.556775e-01          True  max_independent
6                0.10       Distance_Correlation   0.056485  8.890759e-01          True    min_dependent
6                0.10       Distance_Correlation   0.050473  9.495662e-01          True  min_independent
10               1.00       Distance_Correlation   0.056790  8.853625e-01          True    avg_dependent
10               1.00       Distance_Correlation   0.065307  7.622709e-01          True  avg_independent
10               1.00       Distance_Correlation   0.068758  7.055162e-01          True    max_dependent
10               1.00       Distance_Correlation   0.071738  6.553421e-01          True  max_independent
10               1.00       Distance_Correlation   0.063714  7.875229e-01          True    min_dependent
10               1.00       Distance_Correlation   0.051839  9.380930e-01          True  min_independent
14              10.00       Distance_Correlation   0.066293  7.462843e-01          True    avg_dependent
14              10.00       Distance_Correlation   0.055107  9.051654e-01          True  avg_independent
14              10.00       Distance_Correlation   0.052909  9.281450e-01          True    max_dependent
14              10.00       Distance_Correlation   0.076775  5.707748e-01          True  max_independent
14              10.00       Distance_Correlation   0.063714  7.875229e-01          True    min_dependent
14              10.00       Distance_Correlation   0.041610  9.923526e-01          True  min_independent
1                0.01         Mutual_Information   0.044172  9.850926e-01          True    avg_dependent
1                0.01         Mutual_Information   0.080915  5.036655e-01          True  avg_independent
1                0.01         Mutual_Information   0.077039  5.664026e-01          True    max_dependent
1                0.01         Mutual_Information   0.077310  5.619312e-01          True  max_independent
1                0.01         Mutual_Information   0.095528  9.311513e-01          True    min_dependent
1                0.01         Mutual_Information        NaN           NaN         False  min_independent
5                0.10         Mutual_Information   0.056904  8.839498e-01          True    avg_dependent
5                0.10         Mutual_Information   0.054575  9.110356e-01          True  avg_independent
5                0.10         Mutual_Information   0.113165  1.428860e-01          True    max_dependent
5                0.10         Mutual_Information   0.059618  8.482325e-01          True  max_independent
5                0.10         Mutual_Information   0.121041  7.800189e-01          True    min_dependent
5                0.10         Mutual_Information        NaN           NaN         False  min_independent
9                1.00         Mutual_Information   0.061681  8.185316e-01          True    avg_dependent
9                1.00         Mutual_Information   0.057418  8.775112e-01          True  avg_independent
9                1.00         Mutual_Information   0.064200  7.799090e-01          True    max_dependent
9                1.00         Mutual_Information   0.056768  8.856303e-01          True  max_independent
9                1.00         Mutual_Information   0.154200  2.019763e-01          True    min_dependent
9                1.00         Mutual_Information        NaN           NaN         False  min_independent
13              10.00         Mutual_Information   0.058254  8.666963e-01          True    avg_dependent
13              10.00         Mutual_Information   0.081228  4.987230e-01          True  avg_independent
13              10.00         Mutual_Information   0.075665  5.892296e-01          True    max_dependent
13              10.00         Mutual_Information   0.056463  8.893430e-01          True  max_independent
13              10.00         Mutual_Information   0.176444  2.272757e-01          True    min_dependent
13              10.00         Mutual_Information        NaN           NaN         False  min_independent
0                0.01  Pearson_Correlation_(abs)   0.073540  6.249045e-01          True    avg_dependent
0                0.01  Pearson_Correlation_(abs)   0.093621  3.243191e-01          True  avg_independent
0                0.01  Pearson_Correlation_(abs)   0.057479  8.767395e-01          True    max_dependent
0                0.01  Pearson_Correlation_(abs)   0.053268  9.246228e-01          True  max_independent
0                0.01  Pearson_Correlation_(abs)   0.108421  1.769438e-01          True    min_dependent
0                0.01  Pearson_Correlation_(abs)   0.109543  1.683603e-01          True  min_independent
4                0.10  Pearson_Correlation_(abs)   0.073726  6.217567e-01          True    avg_dependent
4                0.10  Pearson_Correlation_(abs)   0.100709  2.455053e-01          True  avg_independent
4                0.10  Pearson_Correlation_(abs)   0.058415  8.645687e-01          True    max_dependent
4                0.10  Pearson_Correlation_(abs)   0.063730  7.872720e-01          True  max_independent
4                0.10  Pearson_Correlation_(abs)   0.130591  6.017439e-02          True    min_dependent
4                0.10  Pearson_Correlation_(abs)   0.101646  2.362478e-01          True  min_independent
8                1.00  Pearson_Correlation_(abs)   0.048294  9.650119e-01          True    avg_dependent
8                1.00  Pearson_Correlation_(abs)   0.084291  4.516404e-01          True  avg_independent
8                1.00  Pearson_Correlation_(abs)   0.064729  7.715099e-01          True    max_dependent
8                1.00  Pearson_Correlation_(abs)   0.058777  8.597350e-01          True  max_independent
8                1.00  Pearson_Correlation_(abs)   0.108160  1.789944e-01          True    min_dependent
8                1.00  Pearson_Correlation_(abs)   0.107342  1.855217e-01          True  min_independent
12              10.00  Pearson_Correlation_(abs)   0.070876  6.698951e-01          True    avg_dependent
12              10.00  Pearson_Correlation_(abs)   0.056024  8.945912e-01          True  avg_independent
12              10.00  Pearson_Correlation_(abs)   0.041732  9.920829e-01          True    max_dependent
12              10.00  Pearson_Correlation_(abs)   0.050229  9.514702e-01          True  max_independent
12              10.00  Pearson_Correlation_(abs)   0.124665  8.188134e-02          True    min_dependent
12              10.00  Pearson_Correlation_(abs)   0.088163  3.956648e-01          True  min_independent
3                0.01            Proposed_Method   0.091714  3.482067e-01          True    avg_dependent
3                0.01            Proposed_Method   0.102954  2.237642e-01          True  avg_independent
3                0.01            Proposed_Method   0.056324  8.910205e-01          True    max_dependent
3                0.01            Proposed_Method   0.099249  2.604687e-01          True  max_independent
3                0.01            Proposed_Method   0.091535  3.505092e-01          True    min_dependent
3                0.01            Proposed_Method   0.099964  2.530633e-01          True  min_independent
7                0.10            Proposed_Method   0.099512  2.577277e-01          True    avg_dependent
7                0.10            Proposed_Method   0.099603  2.567842e-01          True  avg_independent
7                0.10            Proposed_Method   0.080749  5.062996e-01          True    max_dependent
7                0.10            Proposed_Method   0.087622  4.032236e-01          True  max_independent
7                0.10            Proposed_Method   0.078045  5.498611e-01          True    min_dependent
7                0.10            Proposed_Method   0.113691  1.394556e-01          True  min_independent
11               1.00            Proposed_Method   0.273826  4.066826e-07         False    avg_dependent
11               1.00            Proposed_Method   0.301382  1.488902e-08         False  avg_independent
11               1.00            Proposed_Method   0.280299  1.927958e-07         False    max_dependent
11               1.00            Proposed_Method   0.243977  1.000312e-05         False  max_independent
11               1.00            Proposed_Method   0.165560  7.287384e-03         False    min_dependent
11               1.00            Proposed_Method   0.277969  2.527801e-07         False  min_independent
15              10.00            Proposed_Method   0.084729  4.450968e-01          True    avg_dependent
15              10.00            Proposed_Method   0.051841  9.380747e-01          True  avg_independent
15              10.00            Proposed_Method   0.052218  9.346668e-01          True    max_dependent
15              10.00            Proposed_Method   0.074170  6.142853e-01          True  max_independent
15              10.00            Proposed_Method   0.067651  7.239578e-01          True    min_dependent
15              10.00            Proposed_Method   0.078409  5.439182e-01          True  min_independent

========================================
Lognormal Test Results - Shape, Loc, and Scale
========================================
    strength_of_noise                     Method     shape  loc     scale             type
2                0.01       Distance_Correlation  0.019012    0  0.177583    avg_dependent
2                0.01       Distance_Correlation  0.028877    0  0.017405  avg_independent
2                0.01       Distance_Correlation  0.017229    0  0.499077    max_dependent
2                0.01       Distance_Correlation  0.121500    0  0.027524  max_independent
2                0.01       Distance_Correlation  0.155676    0  0.015280    min_dependent
2                0.01       Distance_Correlation  0.049364    0  0.012225  min_independent
6                0.10       Distance_Correlation  0.019211    0  0.176511    avg_dependent
6                0.10       Distance_Correlation  0.028886    0  0.017407  avg_independent
6                0.10       Distance_Correlation  0.017410    0  0.495853    max_dependent
6                0.10       Distance_Correlation  0.120556    0  0.027561  max_independent
6                0.10       Distance_Correlation  0.156683    0  0.015269    min_dependent
6                0.10       Distance_Correlation  0.051479    0  0.012215  min_independent
10               1.00       Distance_Correlation  0.023212    0  0.157678    avg_dependent
10               1.00       Distance_Correlation  0.029127    0  0.017423  avg_independent
10               1.00       Distance_Correlation  0.025033    0  0.356695    max_dependent
10               1.00       Distance_Correlation  0.115730    0  0.027764  max_independent
10               1.00       Distance_Correlation  0.211517    0  0.016987    min_dependent
10               1.00       Distance_Correlation  0.048848    0  0.012257  min_independent
14              10.00       Distance_Correlation  0.016003    0  0.170776    avg_dependent
14              10.00       Distance_Correlation  0.029389    0  0.017559  avg_independent
14              10.00       Distance_Correlation  0.008026    0  0.433466    max_dependent
14              10.00       Distance_Correlation  0.110647    0  0.027704  max_independent
14              10.00       Distance_Correlation  0.211517    0  0.016987    min_dependent
14              10.00       Distance_Correlation  0.052313    0  0.012306  min_independent
1                0.01         Mutual_Information  0.016295    0  0.559835    avg_dependent
1                0.01         Mutual_Information  0.205710    0  0.002998  avg_independent
1                0.01         Mutual_Information  0.014952    0  1.673757    max_dependent
1                0.01         Mutual_Information  0.228377    0  0.016464  max_independent
1                0.01         Mutual_Information  1.053344    0  0.002530    min_dependent
1                0.01         Mutual_Information  1.225847    0  0.000178  min_independent
5                0.10         Mutual_Information  0.026169    0  0.224528    avg_dependent
5                0.10         Mutual_Information  0.213120    0  0.003013  avg_independent
5                0.10         Mutual_Information  0.022102    0  0.667864    max_dependent
5                0.10         Mutual_Information  0.225941    0  0.016718  max_independent
5                0.10         Mutual_Information  0.932922    0  0.002671    min_dependent
5                0.10         Mutual_Information  1.211015    0  0.000173  min_independent
9                1.00         Mutual_Information  0.091349    0  0.045288    avg_dependent
9                1.00         Mutual_Information  0.209835    0  0.002992  avg_independent
9                1.00         Mutual_Information  0.080585    0  0.105384    max_dependent
9                1.00         Mutual_Information  0.225522    0  0.016397  max_independent
9                1.00         Mutual_Information  1.155722    0  0.004243    min_dependent
9                1.00         Mutual_Information  1.273906    0  0.000189  min_independent
13              10.00         Mutual_Information  0.026976    0  0.145728    avg_dependent
13              10.00         Mutual_Information  0.202697    0  0.002990  avg_independent
13              10.00         Mutual_Information  0.022356    0  0.430582    max_dependent
13              10.00         Mutual_Information  0.218646    0  0.016520  max_independent
13              10.00         Mutual_Information  1.116891    0  0.003182    min_dependent
13              10.00         Mutual_Information  1.242773    0  0.000190  min_independent
0                0.01  Pearson_Correlation_(abs)  0.028108    0  0.170985    avg_dependent
0                0.01  Pearson_Correlation_(abs)  0.121968    0  0.007906  avg_independent
0                0.01  Pearson_Correlation_(abs)  0.020241    0  0.498646    max_dependent
0                0.01  Pearson_Correlation_(abs)  0.173688    0  0.024102  max_independent
0                0.01  Pearson_Correlation_(abs)  1.608074    0  0.002072    min_dependent
0                0.01  Pearson_Correlation_(abs)  1.225847    0  0.000178  min_independent
4                0.10  Pearson_Correlation_(abs)  0.028075    0  0.170550    avg_dependent
4                0.10  Pearson_Correlation_(abs)  0.121530    0  0.007905  avg_independent
4                0.10  Pearson_Correlation_(abs)  0.020331    0  0.497416    max_dependent
4                0.10  Pearson_Correlation_(abs)  0.173204    0  0.024120  max_independent
4                0.10  Pearson_Correlation_(abs)  1.696560    0  0.001965    min_dependent
4                0.10  Pearson_Correlation_(abs)  1.211015    0  0.000173  min_independent
8                1.00  Pearson_Correlation_(abs)  0.030759    0  0.140706    avg_dependent
8                1.00  Pearson_Correlation_(abs)  0.116205    0  0.007909  avg_independent
8                1.00  Pearson_Correlation_(abs)  0.023261    0  0.407384    max_dependent
8                1.00  Pearson_Correlation_(abs)  0.167229    0  0.024207  max_independent
8                1.00  Pearson_Correlation_(abs)  1.454465    0  0.002289    min_dependent
8                1.00  Pearson_Correlation_(abs)  1.273906    0  0.000189  min_independent
12              10.00  Pearson_Correlation_(abs)  0.129498    0  0.028460    avg_dependent
12              10.00  Pearson_Correlation_(abs)  0.106247    0  0.007882  avg_independent
12              10.00  Pearson_Correlation_(abs)  0.117747    0  0.069386    max_dependent
12              10.00  Pearson_Correlation_(abs)  0.160256    0  0.023970  max_independent
12              10.00  Pearson_Correlation_(abs)  1.475132    0  0.002435    min_dependent
12              10.00  Pearson_Correlation_(abs)  1.242773    0  0.000190  min_independent
3                0.01            Proposed_Method  0.039930    0  0.136287    avg_dependent
3                0.01            Proposed_Method  0.028407    0  0.084368  avg_independent
3                0.01            Proposed_Method  0.049915    0  0.142739    max_dependent
3                0.01            Proposed_Method  0.027204    0  0.085379  max_independent
3                0.01            Proposed_Method  0.041371    0  0.130124    min_dependent
3                0.01            Proposed_Method  0.030332    0  0.083367  min_independent
7                0.10            Proposed_Method  0.040628    0  0.137476    avg_dependent
7                0.10            Proposed_Method  0.028888    0  0.083855  avg_independent
7                0.10            Proposed_Method  0.049359    0  0.144521    max_dependent
7                0.10            Proposed_Method  0.027370    0  0.084984  max_independent
7                0.10            Proposed_Method  0.047489    0  0.130156    min_dependent
7                0.10            Proposed_Method  0.031543    0  0.082752  min_independent
11               1.00            Proposed_Method  0.095483    0  0.125077    avg_dependent
11               1.00            Proposed_Method  0.063786    0  0.088823  avg_independent
11               1.00            Proposed_Method  0.134919    0  0.134522    max_dependent
11               1.00            Proposed_Method  0.048892    0  0.090934  max_independent
11               1.00            Proposed_Method  0.044990    0  0.111175    min_dependent
11               1.00            Proposed_Method  0.079098    0  0.086746  min_independent
15              10.00            Proposed_Method  0.083631    0  0.170820    avg_dependent
15              10.00            Proposed_Method  0.088315    0  0.069125  avg_independent
15              10.00            Proposed_Method  0.120971    0  0.260646    max_dependent
15              10.00            Proposed_Method  0.082548    0  0.072444  max_independent
15              10.00            Proposed_Method  0.085858    0  0.069810    min_dependent
15              10.00            Proposed_Method  0.101480    0  0.065940  min_independent

========================================
Lognormal Test Results - Confidence Intervals
========================================
    strength_of_noise                     Method  ci_lower  ci_upper             type
2                0.01       Distance_Correlation  0.171087  0.184325    avg_dependent
2                0.01       Distance_Correlation  0.016447  0.018418  avg_independent
2                0.01       Distance_Correlation  0.482505  0.516218    max_dependent
2                0.01       Distance_Correlation  0.021691  0.034924  max_independent
2                0.01       Distance_Correlation  0.011262  0.020731    min_dependent
2                0.01       Distance_Correlation  0.011097  0.013466  min_independent
6                0.10       Distance_Correlation  0.169988  0.183283    avg_dependent
6                0.10       Distance_Correlation  0.016449  0.018421  avg_independent
6                0.10       Distance_Correlation  0.479219  0.513064    max_dependent
6                0.10       Distance_Correlation  0.021761  0.034906  max_independent
6                0.10       Distance_Correlation  0.011232  0.020758    min_dependent
6                0.10       Distance_Correlation  0.011043  0.013512  min_independent
10               1.00       Distance_Correlation  0.150665  0.165017    avg_dependent
10               1.00       Distance_Correlation  0.016456  0.018446  avg_independent
10               1.00       Distance_Correlation  0.339616  0.374632    max_dependent
10               1.00       Distance_Correlation  0.022130  0.034833  max_independent
10               1.00       Distance_Correlation  0.011222  0.025714    min_dependent
10               1.00       Distance_Correlation  0.011138  0.013489  min_independent
14              10.00       Distance_Correlation  0.165503  0.176218    avg_dependent
14              10.00       Distance_Correlation  0.016577  0.018600  avg_independent
14              10.00       Distance_Correlation  0.426701  0.440339    max_dependent
14              10.00       Distance_Correlation  0.022303  0.034414  max_independent
14              10.00       Distance_Correlation  0.011222  0.025714    min_dependent
14              10.00       Distance_Correlation  0.011107  0.013635  min_independent
1                0.01         Mutual_Information  0.542238  0.578003    avg_dependent
1                0.01         Mutual_Information  0.002003  0.004487  avg_independent
1                0.01         Mutual_Information  1.625419  1.723533    max_dependent
1                0.01         Mutual_Information  0.010523  0.025760  max_independent
1                0.01         Mutual_Information  0.000321  0.019938    min_dependent
1                0.01         Mutual_Information  0.000000  0.000000  min_independent
5                0.10         Mutual_Information  0.213303  0.236345    avg_dependent
5                0.10         Mutual_Information  0.001984  0.004576  avg_independent
5                0.10         Mutual_Information  0.639551  0.697430    max_dependent
5                0.10         Mutual_Information  0.010736  0.026031  max_independent
5                0.10         Mutual_Information  0.000429  0.016623    min_dependent
5                0.10         Mutual_Information  0.000000  0.000000  min_independent
9                1.00         Mutual_Information  0.037864  0.054167    avg_dependent
9                1.00         Mutual_Information  0.001983  0.004514  avg_independent
9                1.00         Mutual_Information  0.089987  0.123416    max_dependent
9                1.00         Mutual_Information  0.010539  0.025511  max_independent
9                1.00         Mutual_Information  0.000440  0.040867    min_dependent
9                1.00         Mutual_Information  0.000000  0.000000  min_independent
13              10.00         Mutual_Information  0.138223  0.153640    avg_dependent
13              10.00         Mutual_Information  0.002010  0.004449  avg_independent
13              10.00         Mutual_Information  0.412122  0.449869    max_dependent
13              10.00         Mutual_Information  0.010762  0.025358  max_independent
13              10.00         Mutual_Information  0.000356  0.028402    min_dependent
13              10.00         Mutual_Information  0.000000  0.000000  min_independent
0                0.01  Pearson_Correlation_(abs)  0.161820  0.180669    avg_dependent
0                0.01  Pearson_Correlation_(abs)  0.006225  0.010041  avg_independent
0                0.01  Pearson_Correlation_(abs)  0.479251  0.518825    max_dependent
0                0.01  Pearson_Correlation_(abs)  0.017148  0.033876  max_independent
0                0.01  Pearson_Correlation_(abs)  0.000089  0.048436    min_dependent
0                0.01  Pearson_Correlation_(abs)  0.000016  0.001971  min_independent
4                0.10  Pearson_Correlation_(abs)  0.161419  0.180198    avg_dependent
4                0.10  Pearson_Correlation_(abs)  0.006230  0.010032  avg_independent
4                0.10  Pearson_Correlation_(abs)  0.477984  0.517637    max_dependent
4                0.10  Pearson_Correlation_(abs)  0.017177  0.033870  max_independent
4                0.10  Pearson_Correlation_(abs)  0.000071  0.054639    min_dependent
4                0.10  Pearson_Correlation_(abs)  0.000016  0.001856  min_independent
8                1.00  Pearson_Correlation_(abs)  0.132474  0.149450    avg_dependent
8                1.00  Pearson_Correlation_(abs)  0.006298  0.009932  avg_independent
8                1.00  Pearson_Correlation_(abs)  0.389227  0.426387    max_dependent
8                1.00  Pearson_Correlation_(abs)  0.017442  0.033595  max_independent
8                1.00  Pearson_Correlation_(abs)  0.000132  0.039604    min_dependent
8                1.00  Pearson_Correlation_(abs)  0.000016  0.002293  min_independent
12              10.00  Pearson_Correlation_(abs)  0.022081  0.036683    avg_dependent
12              10.00  Pearson_Correlation_(abs)  0.006400  0.009707  avg_independent
12              10.00  Pearson_Correlation_(abs)  0.055086  0.087397    max_dependent
12              10.00  Pearson_Correlation_(abs)  0.017509  0.032815  max_independent
12              10.00  Pearson_Correlation_(abs)  0.000135  0.043858    min_dependent
12              10.00  Pearson_Correlation_(abs)  0.000017  0.002169  min_independent
3                0.01            Proposed_Method  0.126027  0.147381    avg_dependent
3                0.01            Proposed_Method  0.079799  0.089198  avg_independent
3                0.01            Proposed_Method  0.129436  0.157409    max_dependent
3                0.01            Proposed_Method  0.080946  0.090055  max_independent
3                0.01            Proposed_Method  0.119989  0.141115    min_dependent
3                0.01            Proposed_Method  0.078556  0.088474  min_independent
7                0.10            Proposed_Method  0.126953  0.148870    avg_dependent
7                0.10            Proposed_Method  0.079239  0.088740  avg_independent
7                0.10            Proposed_Method  0.131195  0.159201    max_dependent
7                0.10            Proposed_Method  0.080545  0.089667  max_independent
7                0.10            Proposed_Method  0.118588  0.142852    min_dependent
7                0.10            Proposed_Method  0.077791  0.088030  min_independent
11               1.00            Proposed_Method  0.103729  0.150818    avg_dependent
11               1.00            Proposed_Method  0.078385  0.100652  avg_independent
11               1.00            Proposed_Method  0.103264  0.175242    max_dependent
11               1.00            Proposed_Method  0.082624  0.100079  max_independent
11               1.00            Proposed_Method  0.101792  0.121423    min_dependent
11               1.00            Proposed_Method  0.074288  0.101293  min_independent
15              10.00            Proposed_Method  0.144995  0.201245    avg_dependent
15              10.00            Proposed_Method  0.058138  0.082188  avg_independent
15              10.00            Proposed_Method  0.205627  0.330386    max_dependent
15              10.00            Proposed_Method  0.061623  0.085167  max_independent
15              10.00            Proposed_Method  0.058998  0.082604    min_dependent
15              10.00            Proposed_Method  0.054046  0.080450  min_independent

========================================
Lognormal Test Results - Confidence Intervals SHORT
========================================
    strength_of_noise                     Method  ci_lower  ci_upper             type
2                0.01       Distance_Correlation  0.021691  0.034924  max_independent
2                0.01       Distance_Correlation  0.011262  0.020731    min_dependent
6                0.10       Distance_Correlation  0.021761  0.034906  max_independent
6                0.10       Distance_Correlation  0.011232  0.020758    min_dependent
10               1.00       Distance_Correlation  0.022130  0.034833  max_independent
10               1.00       Distance_Correlation  0.011222  0.025714    min_dependent
14              10.00       Distance_Correlation  0.022303  0.034414  max_independent
14              10.00       Distance_Correlation  0.011222  0.025714    min_dependent
1                0.01         Mutual_Information  0.010523  0.025760  max_independent
1                0.01         Mutual_Information  0.000321  0.019938    min_dependent
5                0.10         Mutual_Information  0.010736  0.026031  max_independent
5                0.10         Mutual_Information  0.000429  0.016623    min_dependent
9                1.00         Mutual_Information  0.010539  0.025511  max_independent
9                1.00         Mutual_Information  0.000440  0.040867    min_dependent
13              10.00         Mutual_Information  0.010762  0.025358  max_independent
13              10.00         Mutual_Information  0.000356  0.028402    min_dependent
0                0.01  Pearson_Correlation_(abs)  0.017148  0.033876  max_independent
0                0.01  Pearson_Correlation_(abs)  0.000089  0.048436    min_dependent
4                0.10  Pearson_Correlation_(abs)  0.017177  0.033870  max_independent
4                0.10  Pearson_Correlation_(abs)  0.000071  0.054639    min_dependent
8                1.00  Pearson_Correlation_(abs)  0.017442  0.033595  max_independent
8                1.00  Pearson_Correlation_(abs)  0.000132  0.039604    min_dependent
12              10.00  Pearson_Correlation_(abs)  0.017509  0.032815  max_independent
12              10.00  Pearson_Correlation_(abs)  0.000135  0.043858    min_dependent
3                0.01            Proposed_Method  0.080946  0.090055  max_independent
3                0.01            Proposed_Method  0.119989  0.141115    min_dependent
7                0.10            Proposed_Method  0.080545  0.089667  max_independent
7                0.10            Proposed_Method  0.118588  0.142852    min_dependent
11               1.00            Proposed_Method  0.082624  0.100079  max_independent
11               1.00            Proposed_Method  0.101792  0.121423    min_dependent
15              10.00            Proposed_Method  0.061623  0.085167  max_independent
15              10.00            Proposed_Method  0.058998  0.082604    min_dependent

No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image